1. 程式人生 > 其它 >樹的概念及樹的深度

樹的概念及樹的深度

技術標籤:資料結構與演算法

樹的概念及樹的深度

基礎概念

“樹” ——遞迴的資料結構 由根節點和它的孩子,以及孩子的孩子等等組成

image-20201014103813076

其中沒有子節點的節點 叫做葉子節點。如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;
}