資料結構 樹

2021-10-03 17:38:33 字數 2722 閱讀 4091

相關操作

平衡二叉樹

相關操作

紅黑樹完全二叉樹

相關概念

相關操作

劍指offer-面試題32:從上到下列印二叉樹

根據遍歷結果構造二叉樹

二叉搜尋樹與鍊錶的轉換

leetcode 100. 相同的樹

leetcode 101. 對稱二叉樹

leetcode 103. 二叉樹的鋸齒形層次遍歷

leetcode 104. 二叉樹的最大深度

leetcode 110. 平衡二叉樹

leetcode 111. 二叉樹的最小深度

leetcode 112. 路徑總和

leetcode 129. 求根到葉子節點數字之和

leetcode 222. 完全二叉樹的節點個數

leetcode 226. 翻轉二叉樹

leetcode 257. 二叉樹的所有路徑

leetcode 404. 左葉子之和

leetcode 543. 二叉樹的直徑

葉子節點:即沒有子節點的節點,即左右子樹都為空的節點

二叉樹的最大深度:即根節點到最遠的葉子節點所經過的節點數

二叉樹的最小深度:即根節點到最近的葉子節點所經過的節點數

平衡二叉樹:左右子樹的高度差的絕對值不超過1的二叉樹;

紅黑樹——經過優化的平衡二叉樹

完全二叉樹:除最後一層外,其它層節點都滿 && 最後一層節點都集中在樹的左側的二叉樹就叫完全二叉樹。

白話資料結構-滿二叉樹和完全二叉樹

劍指 offer 32 - i. 從上到下列印二叉樹

使用佇列存放遍歷到的所有元素,在遍歷的同時,將該元素的左節點和右節點放入佇列;

繼續遍歷,直到隊列為空;

記憶口訣:分層遍歷用佇列,佇列非空入左右

_01_loop_bs_from_up_to_down

劍指 offer 32 - ii. 從上到下列印二叉樹 ii

使用佇列存放遍歷到的所有元素,在遍歷的同時,將該元素的左節點和右節點放入佇列;

使用start,end指標分別記錄每層元素的起點和終點,並將 start 到 end 的各節點放入存放該層元素的容器,在遍歷到終點時,重置對應容器,以及放入該層節點到結果集。

記憶口訣:

分層遍歷用佇列,佇列非空入左右。

指標相遇要調整,終點須為佇列長

把二叉樹列印成多行

劍指 offer 32 - iii. 從上到下列印二叉樹 iii

leetcode 103. 二叉樹的鋸齒形層次遍歷

lintcode: 72. 中序遍歷和後序遍歷樹構造二叉樹

lintcode: 73. 前序遍歷和中序遍歷樹構造二叉樹

lintcode: 106. 有序鍊錶轉換為二分查詢樹

lintcode: 378. 將二叉查詢樹轉換成雙鏈表

二叉搜尋樹與雙向鍊錶

leetcode 100. 相同的樹

leetcode 101. 對稱二叉樹

leetcode 101. 對稱二叉樹

leetcode 100. 相同的樹

leetcode 103. 二叉樹的鋸齒形層次遍歷

二叉樹的鋸齒形遍歷時,需分層列印二叉樹的每一層;

分層列印時,使用棧儲存每一層的元素,由於上一層和下一層的列印順序正好相反,因此需使用兩個棧儲存二叉樹中的各節點;

在列印奇數層時,先儲存左子節點再儲存右子節點到第乙個棧裡;

在列印偶數層時,先儲存柚子節點再儲存左子節點到第二個棧裡;

劍指offer-面試題32:從上到下列印二叉樹_題目三:之字形列印二叉樹

leetcode 104. 二叉樹的最大深度

遞迴獲取左子樹和右子樹的最大深度並返回

leetcode 111. 二叉樹的最小深度

leetcode 110. 平衡二叉樹

平衡二叉樹需滿足兩個條件:

二叉樹的左右子樹的高度差的絕對值不超過1;

左右子樹都為平衡二叉樹;

遞迴判定左右子樹是否為平衡二叉樹 && 當前樹是否為平衡二叉樹

leetcode 104. 二叉樹的最大深度

leetcode 111. 二叉樹的最小深度

遞迴獲取左子樹和右子樹的最小深度並返回

leetcode 104. 二叉樹的最大深度

leetcode 112. 路徑總和

遞迴判定左子樹中是否和為(sum - root.val)的路徑 or 右子樹中是否包含和為(sum - root.val)的路徑

leetcode 129. 求根到葉子節點數字之和

leetcode 222. 完全二叉樹的節點個數

遞迴獲取左子樹和右子樹的節點個數並返回

leetcode 226. 翻轉二叉樹

遞迴獲取左子樹和右子樹的最小深度並返回

leetcode 257. 二叉樹的所有路徑

leetcode 404. 左葉子之和

leetcode 543. 二叉樹的直徑

二叉樹的直徑長度

一顆二叉樹的直徑長度是該二叉樹中任意兩個節點間路徑長度的最大值,這條路徑可能穿過根節點。

注意:兩節點之間的路徑長度是以他們之間的邊的數目表示。

二叉樹的直

資料結構 樹

樹的概念 1.家族樹 在現實生活中,有入如下血統關係的家族可用樹形圖表示 張源有三個孩子張明 張亮和張麗 張明有兩個孩子張林和張維 張亮有三個孩子張平 張華和張群 張平有兩個孩子張晶和張磊。以上表示很像一棵倒畫的樹。其中 樹根 是張源,樹的 分支點 是張明 張亮和張平,該家族的其餘成員均是 樹葉 而...

資料結構 樹

1 定義 樹是一種非線性結構,是一種一對多的資料結構。分析樹的結構,我們用遞迴的方法,根結點下面又可以看做是子樹。2 樹的儲存結構 我們一般用孩子兄弟法儲存。也就是把乙個結點的左邊第乙個孩子放在此結點的左邊孩子,把此結點的右兄弟放在此結點的右邊孩子。這樣就產生了二叉樹。二叉樹和樹可以相互對應。3 二...

資料結構 樹

二叉樹性質回顧 滿二叉樹 完全二叉樹等 給定一棵二叉樹,要求分層遍歷該二叉樹,即從上到下按層次訪問該樹,每一層單獨輸出一行,每一層要求訪問的順序為從左到右。我們在遍歷的過程中將該層節點的孩子節點壓入乙個佇列,這樣就可以實現從上到下一層一層地遍歷該二叉樹。層序遍歷 並分層列印 如果不用分層的話只用佇列...