题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
1、思路分析
还是递归的思想。首先要考虑的就是递归结束的条件,当当前根结点为空时,返回0跳出。其次,二叉树的深度=max(二叉树根结点左子树的深度,二叉树根结点右子树的深度)+1。最后,递归调用的部分应为分别求出左子树的深度和右子树的深度。
2、代码

public class Solution {
    public int TreeDepth(TreeNode root) {
        if(root == null) return 0;
        int nLeft = TreeDepth(root.left);
        int nRight = TreeDepth(root.right);
        return (nLeft>nRight)?(nLeft+1):(nRight+1);
    }
}