题目描述
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
题目链接:
package com.sunshine.OFFER66_SECOND; public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } }
package com.sunshine.OFFER66_SECOND; import org.junit.Test; public class A38_TreeDepth { @Test public void test() { TreeNode n1 = new TreeNode(1); TreeNode n2 = new TreeNode(2); TreeNode n3 = new TreeNode(3); TreeNode n4 = new TreeNode(4); TreeNode n5 = new TreeNode(5); n1.left = n2; n2.right = n3; n3.left = n4; n3.right = n5; int i = TreeDepth(n1); System.out.println(i); } public int TreeDepth(TreeNode root) { if (root == null) { return 0; } int leftDepth = TreeDepth(root.left); int rightDepth = TreeDepth(root.right); return (leftDepth > rightDepth ? leftDepth : rightDepth) + 1; } }