2 6 劍指offer 對稱的二叉樹

2021-09-10 14:53:45 字數 761 閱讀 4686

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。

兩個樹a和b對稱等價於:

這兩個根節點上儲存的值相等

a的左子樹節點和b的右子樹上的節點是對稱的

a的右子樹節點和b的左子樹上的節點是對稱的

實現時,可以通過設定兩個指標同時遍歷二叉樹,遞迴實現。

def

issymmetrical

(proot)

:# 兩個指標同時遍歷

return issymmetric(proot, proot)

defissymmetric

(p1, p2)

:# 把遍歷遇到的none值也考慮進來,解決樹里所有節點的值都相等,但結構不對稱,無法區分的情況

if p1 ==

none

and p2 ==

none

:return

true

if p1 ==

none

or p2 ==

none

:return

false

if p1.val != p2.val:

return

false

# 左子樹和右子樹對稱,同時右子樹和左子樹對稱

return issymmetric(p1.left, p2.right)

and issymmetric(p1.right, p2.left)

劍指Offer 二叉樹 對稱的二叉樹

含有兩道題,都從樹的遞迴入手 請完成乙個函式,輸入乙個二叉樹,該函式輸出它的映象。解題思路 映象翻 只需要遍歷二叉樹,每次訪問乙個結點時,交換其左右子樹。實現 definition for a binary tree node.class treenode def init self,x self....

劍指offer 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。思路 複製一顆二叉樹,在該二叉樹的基礎上求得二叉樹的映象,同時遍歷兩顆二叉樹,判斷每乙個節點是否相同。public class solution private treenode copy ...

劍指offer 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。遞迴 coding utf 8 class treenode def init self,x self.val x self.left none self.right none class ...