class Solution:
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
if not root:
return []
deque_ = collections.deque()
deque_.append(root)
result = []
while deque_:
tmp = []
for i in range(len(deque_)):
node = deque_.popleft()
tmp.append(node.val)
if node.left:
deque_.append(node.left)
if node.right:
deque_.append(node.right)
result.append(tmp)
return result
class Solution:
def isSymmetric(self, root: Optional[TreeNode]) -> bool:
if not root:
return True
return self.compare(root.left,root.right)
def compare(self,left,right):
if not left and not right:
return True
elif not left and right:
return False
elif not right and left:
return False
elif left.val !=right.val:
return False
outside = self.compare(left.left,right.right)
inside = self.compare(left.right,right.left)
return outside and inside