将二叉树的左右节点对放在的队列里,然后出队,判断节点对的左右是否相等。
class Solution:
def isSymmetric(self, root):
if not root:
return True
dq = collections.deque([(root.left,root.right),])
while dq:
node1, node2 = dq.popleft()
if not node1 and not node2:
continue
if not node1 or not node2:
return False
if node1.val != node2.val:
return False
# node1的左与node2的右相对陈
dq.append((node1.left,node2.right))
dq.append((node1.right,node2.left))
return True