题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
思路:对每一个节点进行分析
只有根节点深度就是1
若根节点有左子树没有右,树的深度是左子树+1
若根节点有右子树灭有左,树的深度是右子树+1
若左右都有,则左右的最大值+1
package new_offer; /** * 输入一棵二叉树,求该树的深度。 * 从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 * @author Sonya * */ /** public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } */ public class N38_TreeDepth { public int TreeDepth(TreeNode root) { if(root==null)return 0; int left=TreeDepth(root.left); int right=TreeDepth(root.right); if(left>right) return left+1; else return right+1; } public static void main(String[] args) { // TODO Auto-generated method stub } }