输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
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 // 当前节点深度是:左右子树中深度较大的值加121 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 };