# 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