c博客鏈接:
二叉樹的深度
題目鏈接:
題目
給定一個二叉樹,找出其最大深度。
二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。
說明: 葉子節點是指沒有子節點的節點。
示例:
給定二叉樹 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回它的最大深度 3 。
題解
使用遞歸,每次遍歷節點,判斷是否為葉子節點,如果不是葉子節點,則繼續遍歷並把深度加一,如果是葉子節點比較當前深度是否比前面深度大,並且返回。
做這類題目的思路是:
1.先確定輸入,輸出。
2.確定最小遞歸單元。
3.怎么由最小遞歸單元得出最后結果。
代碼
class Solution { public int maxDepth(TreeNode root) { return max(root); } public int max(TreeNode root){ if(root==null) return 0; int left= max(root.left); int right= max(root.right); return Math.max(left,right)+1; } }
結果