28 對稱的二叉樹 待優化

2021-10-03 21:04:31 字數 1302 閱讀 3737

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

思路1:

前序遍歷順序為根、左、右。定義乙個對稱的前序遍歷演算法,順序為根、右、左。如果兩次遍歷後的序列是相同的,那麼認為是對稱的,如果是不同的,那麼就是不對稱的。注意特殊情況,如二叉樹的所有節點值相等但是卻有殘缺,為了正確判斷這種型別的二叉樹,在遍歷時把遇到的空指標也考慮進來。這個**寫的,太**觀了。

python題解:

# -*- coding:utf-8 -*-

# class treenode:

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class solution:

def issymmetrical(self, proot):

# write code here

if not proot:

return true

s1=s2=

self.qianleftright(s1,proot)

self.qianrightleft(s2,proot)

for i in range(len(s1)):

if s1[i]!=s2[i]:

return false

return true

def qianleftright(self,s,proot):

if proot.left==none and proot.right==none:

return

if proot.left:

self.qianleftright(s,proot.left)

else:

if proot.right:

self.qianleftright(s,proot.right)

else:

def qianrightleft(self,s,proot):

if proot.left==none and proot.right==none:

return

if proot.right:

self.qianrightleft(s,proot.right)

else:

if proot.left:

self.qianrightleft(s,proot.left)

else:

28 對稱的二叉樹

請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。示例 1 輸入 root 1,2,2,3,4,4,3 輸出 true 示例 2 輸入 root 1,2,2,null,3,null,3 輸出 false ...

27 二叉樹映象28 對稱二叉樹

解題思路 這裡還是貼下大佬的解答。遞迴這方面我做的不夠好,看週末能不能整理個遞迴的合集。在這裡插入 片 class solution def issymmetric self,root treenode bool def recur l,r if not l and not r return tru...

面試題28 對稱二叉樹

題目 請實現乙個函式,用來判斷一棵二叉樹是不是對稱的。如果一棵二叉樹和它的映象一樣,那麼它是對稱的。例如,二叉樹 1,2,2,3,4,4,3 是對稱的。方法 遞迴 root1 的左子樹和 root2 的右子樹比較,root1 的右子樹和 root2 的左子樹比較,遞迴下去直到 root1 和 roo...