Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
/**
* Definition for binary tree
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
public class 查找树的深度 {
public int maxDepth(TreeNode root) {
if(root==null){
return 0;
}
//使用后序遍历,返回深度最大的子树的深度,+1表示将当前节点算进去之后的深度~
int l=this.maxDepth(root.left);
int r=this.maxDepth(root.right);
return l>r? 1+l:r+1;
}
// public int maxDepth_(TreeNode root){
//
// }
public static void main(String []args){
TreeNode t1=new TreeNode('A');
TreeNode t2=new TreeNode('B');
TreeNode t3=new TreeNode('C');
TreeNode t4=new TreeNode('D');
TreeNode t5=new TreeNode('E');
TreeNode t6=new TreeNode('F');
Solution s=new Solution();
t1.left=t2;
t1.right=t3;
t3.right=t4;
t4.right=t5;
t5.left=t6;
int depth=s.maxDepth(t1);
System.out.println(String.valueOf(depth));
}
}