請實現乙個函式,用來判斷一顆二叉樹是不是對稱的。注意,如果乙個二叉樹同此二叉樹的映象是同樣的,定義其為對稱的。
思路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...