在做二叉树问题的时候,遇到了一个关于判断二叉树是否对称的问题
“给你一个二叉树的根节点 root , 检查它是否轴对称。”
https://assets.leetcode.com/uploads/2021/02/19/symtree1.jpg
输入:root = 1 2 2 3 4 4 3
输出:true
https://assets.leetcode.com/uploads/2021/02/19/symtree2.jpg
输入:root = 1 2 2 null 3 null 3
输出:false
被测试点1 2 2 null 3 null 3卡住了
class Node(object):
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution(object):
def isSymmetric(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
def helper(root):
queue = [root]
while queue:
length = len(queue)
cur_list = []
for i in range(length): //存储每层
cur = queue.pop(0)
if cur == None:
cur_list.append(10001)
else:
cur_list.append(cur.val)
if cur.left != None and cur.right != None:
queue.append(cur.left)
queue.append(cur.right)
if len(cur_list) > 1: //判断每层是否对称
while cur_list:
first = cur_list.pop(0)
last = cur_list.pop(-1)
if first != last:
return False
return True
return helper(root)