劍指Offer之Java算法習題精講二叉樹與N叉樹
更新時間:2022年03月18日 10:29:24 作者:明天一定.
跟著思路走,之后從簡單題入手,反復去看,做過之后可能會忘記,之后再做一次,記不住就反復做,反復尋求思路和規(guī)律,慢慢積累就會發(fā)現(xiàn)質的變化
題目一

?解法
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
StringBuffer sb = new StringBuffer();
List<String> list = new ArrayList<String>();
public List<String> binaryTreePaths(TreeNode root) {
method(root);
return list;
}
public void method(TreeNode root){
if(root==null) return;
int t = sb.length();
sb.append(root.val);
if(root.left==null&&root.right==null){
list.add(sb.toString());
}
sb.append("->");
method(root.left);
method(root.right);
sb.delete(t, sb.length());
}
}
題目二

?解法
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
int ans = 0;
public int sumOfLeftLeaves(TreeNode root) {
method(root,false);
return ans;
}
public void method(TreeNode root,boolean flag){
if(root==null) return;
if(root.left==null&&root.right==null&&flag){
ans+=root.val;
return;
}
method(root.left,true);
method(root.right,false);
}
}
題目三

?解法
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public int maxDepth(Node root) {
if(root==null){
return 0;
}
int maxChildDepth = 0;
for(int i = 0;i<root.children.size();i++){
int childDepth = maxDepth(root.children.get(i));
maxChildDepth = Math.max(maxChildDepth, childDepth);
}
return maxChildDepth+1;
}
}
到此這篇關于劍指Offer之Java算法習題精講二叉樹與N叉樹的文章就介紹到這了,更多相關 Java 二叉樹內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
一不小心就讓Java開發(fā)踩坑的fail-fast是個什么鬼?(推薦)
這篇文章主要介紹了Java fail-fast,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-04-04
MyBatis直接執(zhí)行SQL的工具SqlMapper
今天小編就為大家分享一篇關于MyBatis直接執(zhí)行SQL的工具SqlMapper,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
使用Springboot整合GridFS實現(xiàn)文件操作
這篇文章主要介紹了使用Springboot整合GridFS實現(xiàn)文件操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10

