题目:输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
思路:如果一棵二叉树只有一个结点,那么他的深度就为1。如果根节点只有右子树没有左子树,则树的深度是右子树的深度加1,同理可得只有左子树没 有右子树的情况。如果既有左子树又有右子树,深度即为左右子树深度的较大值加1.
代码:
/** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class Solution { public int TreeDepth(TreeNode root) { if(root == null){ return 0; } int nLeft = TreeDepth(root.left)+1; int nRight = TreeDepth(root.right)+1; return (nLeft>nRight)?nLeft:nRight; } }