Practice Leetcode 101. 对称二叉树

it2023-07-17  65

给定一个二叉树,检查它是否是镜像对称的。

例如,二叉树 [1,2,2,3,4,4,3] 是对称的。

1

/ 2 2 / \ / 3 4 4 3

但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:

1

/ 2 2 \ 3 3

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/symmetric-tree

方法1:递归

class Solution: def isSymmetric(self, root: TreeNode) -> bool: def check(p: TreeNode, q: TreeNode): if not p and not q: return True if not p or not q: return False return p.val == q.val and check(p.left,q.right) and check(p.right,q.left) return check(root,root)

方法2:迭代

class Solution: def isSymmetric(self, root: TreeNode) -> bool: queue = [root,root] while queue: one,another = queue.pop(),queue.pop() if not one and not another: continue if not one or not another or one.val != another.val: return False queue += [one.left,another.right,one.right,another.left] return True
最新回复(0)