题目:
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
思路:
如果一棵树只有一个结点,则深度是1。如果根结点只有左子树而没有右子树,则深度是左子树的深度+1;如果根结点只有右子树没有左子树,则深度应该是右子树的深度+1;如果根结点既有左子树又有右子树,则深度是左子树和右子树深度较大者+1.
代码如下:
public class Solution {public int TreeDepth(TreeNode root) {
if(root==null)
return 0;
int left=TreeDepth(root.left);
int right=TreeDepth(root.right);
return (left>right)?(left+1):(right+1);
}
}