演算法 數的子結構

2022-03-03 21:07:51 字數 1177 閱讀 3166

題目:

輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)

思路:

1、首先設定標誌位result = false,因為一旦匹配成功result就設為true,

剩下的**不會執行,如果匹配不成功,預設返回false

2、遞迴思想,如果根節點相同則遞迴呼叫baohan(),

如果根節點不相同,則判斷tree1的左子樹和tree2是否相同,

再判斷右子樹和tree2是否相同

3、注意null的條件,hassubtree中,如果兩棵樹都不為空才進行判斷,

baohan中,如果tree2為空,則說明第二棵樹遍歷完了,即匹配成功,

tree1為空有兩種情況(1)如果tree1為空&&tree2不為空說明不匹配,

(2)如果tree1為空,tree2為空,說明匹配。

**:

package

lg.nowcoder;

/*** @author liguo

* @description 樹的子結構

* 輸入兩棵二叉樹a,b,判斷b是不是a的子結構。(ps:我們約定空樹不是任意乙個樹的子結構)

1、首先設定標誌位result = false,因為一旦匹配成功result就設為true,

剩下的**不會執行,如果匹配不成功,預設返回false

2、遞迴思想,如果根節點相同則遞迴呼叫baohan(),

如果根節點不相同,則判斷tree1的左子樹和tree2是否相同,

再判斷右子樹和tree2是否相同

3、注意null的條件,hassubtree中,如果兩棵樹都不為空才進行判斷,

baohan中,如果tree2為空,則說明第二棵樹遍歷完了,即匹配成功,

tree1為空有兩種情況(1)如果tree1為空&&tree2不為空說明不匹配,

(2)如果tree1為空,tree2為空,說明匹配。

* @data 2018-08-14 10:47 */

public

class

solution6

return

result;

}public

static

boolean

baohan(treenode root1,treenode root2)

}

結構上的演算法 陣列

陣列實際上是以數為索引,以某種結構為排列的一種結構,通常要解決的問題即是查詢,排序,字串,各種數字類問題等 陣列問題優先要向o n 然後是o logn 考慮 通用型演算法有 基於o n 的partition演算法 每5個作插入,所有中間值作傳統partition演算法的select中位數演算法 基於...

演算法(資料結構)

空間不夠儲存 給40億個不重複的unsigned int的整數,沒排過序的,然後再給乙個數,如何快速判斷這個數是否在那40億個數當中 40億個數空間儲存的問題 利用對映 分析 unsigned 範圍是2 32 40億大約大約4g個數不到,常規方法肯定是不行的 我們你可以利用 伴隨陣列 那種思想利用記...

演算法 資料結構

演算法是程式的核心,演算法的好壞直接決定了程式的好壞 基礎的幾種演算法 二分查詢 氣泡排序 插入排序 選擇排序 快速排序 二分查詢 假設資料是按公升序排序的,對於給定值x,從序列的中間位置開始比較,如果當前位置值等於x,則查詢成功 若x小於當前位置值,則在數列的前半段中查詢 若x大於當前位置值則在數...