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