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

劍指offer 58. 對稱的二叉樹

題目描述

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

思路:

二叉樹映象相同是對稱的,利用遞迴做。

參考答案:

# -*- 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
        return self.IsSymmetrical(pRoot, pRoot)

    def IsSymmetrical(self, pRoot1, pRoot2):
        if pRoot1 == None and pRoot2 == None:
            return True
        if pRoot1 == None or pRoot2 == None:
            return False
        if pRoot1.val != pRoot2.val:
            return False
        return self.IsSymmetrical(pRoot1.left, pRoot2.right) and self.IsSymmetrical(pRoot1.right, pRoot2.left)


Note

  • 這個遞迴思路很清晰,比自己做的明白清晰很多。