关于leetcode中二叉树入门的一道bfs

在做二叉树问题的时候,遇到了一个关于判断二叉树是否对称的问题

“给你一个二叉树的根节点 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)

我想用bfs将每一层存储下来,然后逐层判断是否对称,我认为我判断对称没有问题,是不是存储的时候出错了啊
希望有人可以帮我解答一下

if cur.left != None and cur.right != None:
应该分成两次判断,
if cur.left != None:
queue.append(cur.left)
if cur.right != None:
queue.append(cur.right)

if cur != None:上面的else就已经是了

我知道问题是什么了,if cur.left != None and cur.right != None: 此行应为if cur != None:,但不清楚为什么