[劍指offer]二叉樹的深度
阿新 • • 發佈:2018-12-16
思路:
使用遞迴方法,先定義出口。在遍歷到null時表示到底返回0,在root節點的左右子樹都為空時是最低一層返回1,對左子樹和右子樹分別使用遞迴進行上述遍歷,以左右子樹節點代替原來的root節點,最後判斷左子樹還是右子樹深度深,返回最深的。
實現:
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
public class Solution {
public int TreeDepth(TreeNode root) {
if(root==null){
return 0;
}
if(root.left==null && root.right==null){
return 1;
}
int left=TreeDepth(root.left);
int right=TreeDepth(root.right);
return left> right?left+1:right+1;
}
}