class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
def isSameTree(self, p: TreeNode, q: TreeNode) -> bool:
l = [p]# 存储p中的节点
r = [q]# 存储q中的节点
res = []
while l and r:
temp_p = l.pop()
temp_q = r.pop()
if temp_p == None or temp_q == None:# 如果 p 和 q中同位置节点有一个为空
res.append(temp_p == temp_q)
else:
res.append(temp_p.val == temp_q.val)
l.append(temp_p.right)
l.append(temp_p.left)
r.append(temp_q.right)
r.append(temp_q.left)
if l or r: # 如果p和q中节点数目不同
return False
else:
return all(res)#p和q中任意同位置节点相等二者才相等