
二叉树的深度描述输入一棵二叉树求该树的深度。从根结点到叶结点依次经过的结点含根、叶结点形成树的一条路径最长路径的长度为树的深度根节点的深度视为 1 。假如输入的用例为{1,2,3,4,5,#,6,#,#,7}那么如下图从上到下从左到右:解题代码publicclassBinaryTree{publicstaticvoidmain(String[]args){TreeNodetreeNodenewTreeNode(1);treeNode.leftnewTreeNode(2);treeNode.left.leftnewTreeNode(4);treeNode.left.rightnewTreeNode(5);treeNode.rightnewTreeNode(3);treeNode.right.rightnewTreeNode(6);treeNode.left.right.leftnewTreeNode(7);Test01test01newTest01();intitest01.TreeDepth(treeNode);System.out.println(结果i);}privateListIntegerlistnewArrayListInteger();publicintmaxDepth(TreeNoderoot){if(rootnull){return0;}return1Math.max(maxDepth(root.left),maxDepth(root.right));}}classTreeNode{intval0;TreeNodeleftnull;TreeNoderightnull;publicTreeNode(intval){this.valval;}}求二叉树的最小深度同样可以用递归解决但相比最大深度需要注意一个非常巧妙的细节。publicintminDepth(TreeNoderoot){if(rootnull){return0;}if(root.leftnull){return1minDepth(root.right);}if(root.rightnull){return1minDepth(root.left);}return1Math.min(minDepth(root.left),minDepth(root.right));}