【Java】 劍指offer(55-1) 二叉樹的深度 《劍指Offer》Java實現合集 《劍指Offer》Java實現合集
阿新 • • 發佈:2018-11-14
本文參考自《劍指offer》一書,程式碼採用Java語言。
題目
輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的/結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。
思路
簡潔理解:
樹的深度=max(左子樹深度,右子樹深度)+1,採用遞迴實現。
測試算例
1.功能測試(左斜樹、右斜樹、普通樹)
2.邊界值測試(一個結點)
3.特殊測試(null)
Java程式碼
//題目:輸入一棵二叉樹的根結點,求該樹的深度。從根結點到葉結點依次經過的 //結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。 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.深度從遞迴的角度理解,很贊,要記住。