思路:
使用递归方法,先定义出口。在遍历到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;
}
}