输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
1 /** 2 * 二叉树的深度 3 * 4 * @author Administrator 5 * 6 */ 7 public class Solution { 8 public int TreeDepth(TreeNode pRoot) { 9 10 if (null == pRoot) { 11 return 0; 12 } 13 14 // 递归求左子树深度 15 int nLeft = TreeDepth(pRoot.left); 16 17 // 递归求右子树深度 18 int nRight = TreeDepth(pRoot.right); 19 20 // 当前节点深度是:左右子树中深度较大的值加1 21 return nLeft > nRight ? (1 + nLeft) : (1 + nRight); 22 } 23 } 24 25 class TreeNode { 26 int val = 0; 27 TreeNode left = null; 28 TreeNode right = null; 29 30 public TreeNode(int val) { 31 this.val = val; 32 } 33 };