題目描述
請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),用來(lái)判斷一顆二叉樹(shù)是不是對(duì)稱的趟妥。注意猫态,如果一個(gè)二叉樹(shù)同此二叉樹(shù)的鏡像是同樣的,定義其為對(duì)稱的披摄。
思路
樹(shù)的問(wèn)題通城籽可以用遞歸解決。
這道題其實(shí)就是從上到下比較左右節(jié)點(diǎn)疚膊,能順利比到最后的葉子節(jié)點(diǎn)就返回正確义辕,中間匹配到不相等的值就返回錯(cuò)誤。
代碼
class Solution:
def isSymmetrical(self, pRoot):
# write code here
p1 = pRoot
p2 = pRoot
flag = self.isMirror(p1,p2)
return flag
def isMirror(self,p1,p2):
if p1 == None and p2 == None:
return True
if p1 == None or p2 == None:
return False
if p1.val != p2.val:
return False
flag1 = self.isMirror(p1.left,p2.right)
flag2 = self.isMirror(p1.right,p2.left)
return flag1 and flag2