Python程式:檢查給定樹是否是對稱樹
假設我們有一棵二叉樹。我們需要檢查這棵樹是否是對稱樹。如果一棵樹與其映象相同,則稱其為對稱樹。從這兩棵樹來看,第一棵是對稱的,但第二棵不是。


為了解決這個問題,我們將遵循以下步驟。
我們將遞迴地呼叫以下步驟。該函式將是solve(root, root)
如果節點1和節點2為空,則返回true
如果節點1或節點2為空,則返回false
當node1.val = node2.val 且 solve(node1.left, node2.right) 且 solve(node1.right, node2.left) 時返回true
讓我們來看下面的實現,以便更好地理解——
示例
class TreeNode: def __init__(self, data, left = None, right = None): self.data = data self.left = left self.right = right class Solution(object): def isSymmetric(self, root): return self.solve(root,root) def solve(self,node1,node2): if not node1 and not node2: return True if not node1 or not node2: return False return node1.data == node2.data and self.solve(node1.left,node2.right) and self.solve(node1.right,node2.left) root = TreeNode(1) root.left = TreeNode(2) root.right = TreeNode(2) root.left.left = TreeNode(3) root.left.right = TreeNode(4) root.right.left = TreeNode(4) root.right.right = TreeNode(3) ob1 = Solution() print(ob1.isSymmetric(root))
輸入
root = TreeNode(1) root.left = TreeNode(2) root.right = TreeNode(2) root.left.left = TreeNode(3) root.left.right = TreeNode(4) root.right.left = TreeNode(4) root.right.right = TreeNode(3)
輸出
True
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP