题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
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); } }