輸入一棵二叉樹,求該樹的深度。從根結點到葉結點依次通過的結點(含根、葉結點)造成樹的一條路徑,最長路徑的長度爲樹的深度。java
package demo18; class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } /** * 獲取二叉樹深度 * @author mengfeiyang * */ public class Solution2 { public int TreeDepth(TreeNode pRoot){ if(pRoot ==null) return 0; int nLeft=TreeDepth(pRoot.left); int nRight=TreeDepth(pRoot.right); return nLeft>nRight?(nLeft+1):(nRight+1); } /** * 測試 * @param args */ public static void main(String[] args) { Solution2 s2 = new Solution2(); /** * 構造二叉樹 * 1 * / \ * 2 3 * / \ / \ * 4 5 6 7 */ TreeNode root = new TreeNode(1); TreeNode left = new TreeNode(2); TreeNode right = new TreeNode(3); TreeNode left_1 = new TreeNode(4); TreeNode right_1 = new TreeNode(5); TreeNode right_2 = new TreeNode(6); TreeNode left_2 = new TreeNode(7); left.left = left_1; left.right = right_1; right.left = left_2; right.right = right_2; root.left = left; root.right = right; System.out.println(s2.TreeDepth(root));// 輸出結果爲:3 } }