LintCode 關於二叉樹問題的總結

2021-07-30 23:13:45 字數 1676 閱讀 2399

1.樹的定義

樹:n(n≥0)個結點的有限集合。當n=

0時,稱為空樹;任意一棵非空樹滿足以下條件:

⑴ 有且僅有乙個特定的稱為根的結點;

⑵ 當n>1時,除根結點之外的其餘結點被分成m

(m>0)個互不相交的有限集合

t1,t2,…,

tm,其中每個集合又是一棵樹,並稱為這個根結點的子樹。

樹的定義是採用遞迴方法

2.二叉樹的遍歷操作

樹的遍歷:從根

結點出發,按照某種

次序訪問樹中所有結點,使得每個結點被訪問一次且僅被訪問一次。

2.1前序(根)遍歷

若二叉樹為空,則空操作返回;否則:

①訪問根結點; ②

前序遍歷

根結點的左子樹; ③

前序遍歷

根結點的右子樹。

2.2中序(根)遍歷

若二叉樹為空,則空操作返回;否則: ①

中序遍歷

根結點的左子樹;

②訪問根結點;

③中序遍歷根結點的右子樹。

2.3後序(根)遍歷

若二叉樹為空,則空操作返回;否則: ①

後序遍歷

根結點的左子樹; ②

後序遍歷

根結點的右子樹。

③訪問根結點;

2.4層序遍歷

二叉樹的層次遍歷是指從二叉樹的第一層(即根結點)開始,從上至下

逐層遍歷,在同一層中,則按

從左到右

的順序對結點逐個訪問。

3.二叉樹的定義

二叉樹是

n(n≥0)

個結點的有限集合,該集合或者為空集(稱為空二叉樹),或者由乙個根結點和兩棵

互不相交

的、分別稱為根結點的

左子樹和

右子樹的二叉樹組成。

4.二叉樹的特點

⑴ 每個結點最多有兩棵子樹;

⑵ 二叉樹是有序的,其次序不能任意顛倒。

5.特殊的二叉樹

斜樹 1 .所有結點都只有左子樹的二叉樹稱為左斜樹;

2 .所有結點都只有右子樹的二叉樹稱為右斜樹;

3.左斜樹和右斜樹統稱為斜樹。

4.1斜樹

1. 在斜樹中,每一層只有乙個結點;

2.斜樹的結點個數與其深度相同。

6.二叉樹的雙親

二叉樹每乙個節點最多出度為2,即它的左孩子和右孩子。和鍊錶的next類似,二叉樹的節點間關係依靠雙親

root->left(左孩子)和root->right(右孩子)來表示。二叉樹的遞迴也經常是訪問完當前節點之後root->left訪問root

的左孩子,通過root->right訪問右孩子,進而完成對整個樹所有節點的訪問。

7.二叉樹的深度

從根節點到葉子結點的距離稱為深度,最大深度為根節點到葉子節點的最大距離,最小距離為根節點到葉子節點的最小距離。

8.二叉樹的等價

兩顆二叉樹等價只有當結構與節點值完全相同時才為等價,即兩個根節點的值相同並且左子樹等價左子樹,右子樹等價右子樹這兩顆樹才等價。

9.二叉樹的遞迴

二叉樹的大多數節點都連線著左右兩個子樹(有些節點沒有兩個子樹),每乙個子樹都有乙個根節點。在訪問完當前根節點後以當前根節點的孩子

為新的根節點訪問,進而把一棵樹按照乙個個向下移的根節點拆分為更小的子樹,對最小的子樹進行的操作遞迴後即為對整棵樹的操作。

LintCode 等價二叉樹

題目描述 檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,並且每個對應位置上的節點上的數都相等。樣例 1 1 2 2 and 2 2 4 4 就是兩棵等價的二叉樹。1 1 2 3 and 2 3 4 4就不是等價的。做題思路 本題給出的bool型別的函式來判斷二叉樹是否等價...

lintcode 等價二叉樹

1 題目 檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,並且每個對應位置上的節點上的數都相等。樣例 1 1 2 2 and 2 2 4 4就是兩棵等價的二叉樹。1 1 2 3 and 2 3 4 4就不是等價的。2 思路 對兩課二叉樹從以下幾種情況考慮 兩個均空,true...

Lintcode 等價二叉樹

1 問題描述 檢查兩棵二叉樹是否等價。等價的意思是說,首先兩棵二叉樹必須擁有相同的結構,並且每個對應位置上的節點上的數都相等。樣例 1 1 2 2 and 2 2 4 4就是兩棵等價的二叉樹。1 1 2 3 and 2 3 4 4 2 解題思路 從根節點開始判斷兩顆樹是否相等,先判斷結構是否相等,在...