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)
Learn Python in-depth with real-world projects through our Python certification course. Enroll and become a certified expert to boost your career.
输出
True
广告