# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param pRoot TreeNode类 
# @return bool布尔型
#
# import sys
from collections import deque
class Solution:
    def isSymmetrical(self , pRoot: TreeNode) -> bool:
        # write code here
        if not pRoot: return True
        g = deque([pRoot])
        root = []
        c=int()
        INF= 1001
        emptyNode=TreeNode(INF)
        while g:
            cur = []
            for _ in range(len(g)):
                node = g.popleft()
                cur.append(node.val)
                if node != emptyNode:
                    if node.left:
                        g.append(node.left)
                    if not node.left:
                        g.append(emptyNode)
                    if node.right:
                        g.append(node.right)
                    if not node.right:
                        g.append(emptyNode)
            if cur != cur[::-1]:
                print(1)
                return False
            root.append(cur)
            c += 1
            
            
            
            
        
        # f=[[]]
        # root.pop()
        # n=len(root)
        # for i in range(n-1+1):
            
        #     t= root.pop()
        #     f.append(t)
            
        # for i in range(n-1+1):
        #     if len(f[i]) == len(f[i+1]):
        #         print(2)
        #         return False
        return True