給定乙個二叉樹,檢查它是否是映象對稱的。
例如,二叉樹 [1,2,2,3,4,4,3] 是對稱的。
1/ \
2 2
/ \ / \
3 4 4 3
但是下面這個 [1,2,2,null,3,null,3] 則不是映象對稱的:
1
/ \2 2
\ \
3 3
你可以運用遞迴和迭代兩種方法解決這個問題嗎?
思路1:遞迴
1.從根節點開始判斷,先判斷左右子樹,如果符合條件,分別判斷(左子樹左孩子,右子樹有孩子)(右子樹左孩子,左子樹有孩子),以此類推,全部都為true,則返回true
ac**:(c++)
class
solution
bool
ismirror
(treenode* t1, treenode* t2)
};
思路2:迭代
1.採用佇列,開始將根節點左右子樹隊。
2.儲存佇列的前兩個節點並出隊,判斷思路與遞迴法相同,將隊頭兩個元素的4個子樹入隊,繼續判斷,直至隊空。
3.在入隊子數的時候要按照判斷的順序入隊,即(左子樹左孩子,右子樹右孩子)(右子樹左孩子,左子樹右孩子)
ac**:(c++)
class
solution
return
true;}
};
LeetCode 101 對稱二叉樹
給定乙個二叉樹,檢查它是否是它自己的映象 即,圍繞它的中心對稱 例如,這個二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3 但是下面這個 1,2,2,null,3,null,3 則不是 1 2 2 3 3 說明 如果你可以遞迴地和迭代地解決它就獎勵你點數。建立乙個映象的樹,然...
LeetCode(101) 對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3說明 如果你可以運用遞迴和迭代兩種方法解決這個問題,會很加分。這道題也是劍指offer上的2...
leetcode 101 對稱二叉樹
給定乙個二叉樹,檢查它是否是映象對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。1 2 2 3 4 4 3但是下面這個 1,2,2,null,3,null,3 則不是映象對稱的 1 2 2 3 3思路 如果同時滿足下面的條件,兩個樹互為映象 它們的兩個根結點具有相同的值。每個樹的右子樹都...