產生樹的映象,判斷一棵樹是否為對稱二叉樹
阿新 • • 發佈:2019-02-08
程式碼均為Python:
1. 產生樹的映象:
class Solution:
def Mirror(self,root):
if(root):
root.left,root.right = root.right,root.left
self.Mirror(root.left)
self.Mirror(root.right)
原理就是遞迴地交換每個結點的左右子結點。
2. 判斷是否為二叉樹:如果一棵樹與他的映象相同,則為對稱二叉樹。
class Solution: def isSymmetrical(self, pRoot): return self.isEqual(pRoot,pRoot) def isEqual(self,tree1,tree2): #將入口的根節點拓展為兩個根節點的比較 if(tree1==None and tree2==None): return True elif(tree1==None or tree2==None): #若兩個根一個為None另外一個不是None,則返回False return False if(tree1.val!=tree2.val): return False else: return self.isEqual(tree1.left,tree2.right) and self.isEqual(tree1.right,tree2.left)