1. 程式人生 > >python劍指offer系列對稱的二叉樹

python劍指offer系列對稱的二叉樹

題目:

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

solution:

/*思路:首先根節點以及其左右子樹,左子樹的左子樹和右子樹的右子樹相同* 左子樹的右子樹和右子樹的左子樹相同即可,採用遞迴

程式碼:

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def isSymmetrical(self, pRoot):
        if not pRoot: return True
        
        return self.isSame(pRoot.left,pRoot.right)
    def isSame(self,pRoot1,pRoot2):
        
        if pRoot1 == None:
            return pRoot2 == None
        elif pRoot2 == None:
            return False
        elif pRoot1.val != pRoot2.val:
            return False
        return self.isSame(pRoot1.left,pRoot2.right) and self.isSame(pRoot1.right,pRoot2.left)
        # write code here