樹的概念及樹的深度
阿新 • • 發佈:2021-02-14
技術標籤:資料結構與演算法
樹的概念及樹的深度
基礎概念
“樹” ——遞迴的資料結構 由根節點和它的孩子,以及孩子的孩子等等組成
其中沒有子節點的節點 叫做葉子節點。如EFCG,都是葉子節點。
節點的度:指擁有的子節點個數。如A的度是3,B的度是2,D的度是1,葉子節點的度都是0。
節點的關係:子節點是父節點的孩子節點,父節點也是子節點的雙親節點。有相同父節點的節點為兄弟節點。如A是B的雙親節點,B是A的孩子節點,B和C是兄弟節點。
節點的層次: A在第一層,BCD在第二層,EFG在第三層
樹的深度:是最大層次數,即為3。
“二叉樹”,最多可以分出兩個叉的樹。
https://leetcode-cn.com/problems/er-cha-shu-de-shen-du-lcof/
劍指 Offer 55 - I. 二叉樹的深度
難度簡單59
輸入一棵二叉樹的根節點,求該樹的深度。從根節點到葉節點依次經過的節點(含根、葉節點)形成樹的一條路徑,最長路徑的長度為樹的深度。
例如:
給定二叉樹
[3,9,20,null,null,15,7]
3 / \ 9 20 / \ 15 7
返回它的最大深度 3 。
public static int maxDepth(TreeNode root) { // 樹的深度 左子樹的深度和右子樹的深度中 更大的值 +1 if (root == null) return 0; int leftDepth = maxDepth(root.left); int rightDepth = maxDepth(root.right); return Math.max(leftDepth, rightDepth) + 1; }