本文参考自《剑指offer》一书,代码采用Java语言。html
更多:《剑指Offer》Java实现合集 java
输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次通过的/结点(含根、叶结点)造成树的一条路径,最长路径的长度为树的深度。post
简洁理解:测试
树的深度=max(左子树深度,右子树深度)+1,采用递归实现。this
测试算例 url
1.功能测试(左斜树、右斜树、普通树)htm
2.边界值测试(一个结点)blog
3.特殊测试(null)递归
//题目:输入一棵二叉树的根结点,求该树的深度。从根结点到叶结点依次通过的 //结点(含根、叶结点)造成树的一条路径,最长路径的长度为树的深度。 public class TreeDepth { public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { this.val = val; } } public int TreeDepth(TreeNode root) { if(root==null) return 0; int left=TreeDepth(root.left); int right=TreeDepth(root.right); return Math.max(left+1,right+1); } }
1.深度从递归的角度理解,很赞,要记住。get