题目
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。
解题
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 }}