劍指offer 第58題 對稱二叉樹

2021-09-12 02:57:11 字數 893 閱讀 8452

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

遞迴,判斷左子樹和又子樹是不是一樣

class solution:

def issymmetrical(self, proot):

# write code here

return self.issame(proot, proot)

def issame(self, p1, p2):

if not p1 and not p2:

return true

if not p1 or not p2:

return false

if p1.val != p2.val:

return false

return self.issame(p1.right, p2.left) and self.issame(p1.left, p2.right)

層次遍歷,每次比較當前層是不是回文結構

注意要新增none

class solution:

def issymmetrical(self, proot):

# write code here

if not proot:

return true

s1 = [proot]

s2 =

while s1:

cur =

for node in s1:

if node:

else:

if cur != cur[::-1]:

return false

s1 = s2

s2 =

return true

58 劍指offer 對稱的二叉樹

請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。思路 首先根節點以及其左右子樹,左子樹的左子樹和右子樹的右子樹相同 左子樹的右子樹和右子樹的左子樹相同即可,採用遞迴 非遞迴也可,採用棧或佇列訪問各級子樹根節點 boolean issymm...

58 劍指offer 對稱的二叉樹

題目描述 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。解題思路 定義一種遍歷方式,先遍歷父結點,然後遍歷右結點,然後遍歷左結點 如果為對稱二叉樹,則與前序遍歷相同。注意點 對於乙個結點如果其沒有子結點,應該將其子結點位置特殊處理,例如...

劍指Offer 程式設計題58 對稱的二叉樹

題目 請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。牛客網 鏈結 二叉樹的映象和對稱二叉樹的區別 源二叉樹 8 6 10 5 7 9 11 映象二叉樹 8 10 6 11 9 7 5 對稱二叉樹 8 10 10 11 9 9 11 co...