本文參考自《劍指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