leetcode 100 相同的樹

2021-10-24 01:59:33 字數 1591 閱讀 5110

給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。

如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。

從遞迴的角度來思考,兩棵樹相等需要滿足,則需要滿足當前根節點的值,還要同時兩個左子樹對應相等,兩個右子樹對應相等。

class

solution

};

對兩棵樹進行模擬非遞迴的前序遍歷。只是和普通的前序遍歷不同,對於普通的前序遍歷不應該把左右空節點入棧,但是對於該題,是左右的空節點也要入棧,即把每一棵樹當做乙個完全二叉樹。

class

solutionif(

!peek1 ||

!peek2)

return

false

;int v1 = peek1-

>val;

int v2 = peek2-

>val;

if(v1!=v2)

return

false

; s1.

push

(peek1-

>left)

; s1.

push

(peek1-

>right)

;

s2.push

(peek2-

>left)

; s2.

push

(peek2-

>right);}

return

true;}

};

只用乙個棧的實現:

bool

issametree

(treenode* p, treenode* q)if(

!peek1 ||

!peek2)

return

false

;int v1 = peek1-

>val;

int v2 = peek2-

>val;

if(v1!=v2)

return

false

;

s1.push

(peek1-

>left)

; s1.

push

(peek2-

>left)

; s1.

push

(peek1-

>right)

;

s1.push

(peek2-

>right);}

return

true

;}

其實也是要先寫乙個輔助的函式,用於判斷兩棵樹是否相等,只是和上面相比的同樹判斷不同的是,只要a樹不為空,b樹為空,也是可以返回為真。

class

solution

bool

issubstructure

(treenode* a, treenode* b)

};

LeetCode 100 相同的樹

題目描述 給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 輸入 1 1 2 3 2 3 1,2,3 1,2,3 輸出 true輸入 1 1 2 2 1,2 1,null,2 輸出 false輸入 1 1 2 1 1 2 1,2,...

LeetCode 100 相同的樹

給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 1 輸入 1 1 2 3 2 3 1,2,3 1,2,3 輸出 true示例 2 輸入 1 1 2 2 1,2 1,null,2 輸出 false示例 3 輸入 1 1 2 1 1...

leetcode100 相同的樹

給定兩個二叉樹,編寫乙個函式來檢驗它們是否相同。如果兩個樹在結構上相同,並且節點具有相同的值,則認為它們是相同的。示例 1 輸入 1 1 2 3 2 3 1,2,3 1,2,3 輸出 true 示例 2 輸入 1 1 2 2 1,2 1,null,2 輸出 false 示例 3 輸入 1 1 2 1...