判斷對稱二叉樹 python代碼


  對稱二叉樹的含義非常容易理解,左右子樹關於根節點對稱,具體來講,對於一顆對稱二叉樹的每一顆子樹,以穿過根節點的直線為對稱軸,左邊子樹的左節點=右邊子樹的右節點,左邊子樹的右節點=左邊子樹的左節點。所以對稱二叉樹的定義是針對一棵樹,而判斷的操作是針對節點,這時可以采取由上到下的順序,從根節點依次向下判斷,只需要重復調用函數,不需要回溯。具體代碼如下。

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 def Traversal(left, right): if left is None and right is None:#如果是葉節點,直接返回True
                return True #如果左右節點相同,繼續判斷左-左和右-右,以及左-右和右-左
            elif left and right and left.val == right.val: return Traversal(left.left, right.right) and Traversal(left.right, right.left) else: return False return Traversal(pRoot.left, pRoot.right)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM