# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:
result = []
queue = []
if root != None:
queue.append(root)
while queue != []:
size = len(queue)
vec = []
for _ in range(size):
temp = queue.pop(0)
vec.append(temp.val)
if temp.left:
queue.append(temp.left)
if temp.right:
queue.append(temp.right)
result.append(vec)
return result
以上题目略
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:
def invert(cur):
if cur ==None:
return
cur.left,cur.right = cur.right,cur.left
invert(cur.left)
invert(cur.right)
invert(root)
return root
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isSymmetric(self, root: Optional[TreeNode]) -> bool:
def compare(left,right):
if left == None and right!= None:
return False
elif left != None and right== None:
return False
elif left == None and right== None:
return True
elif left.val != right.val:
return False
else:
outside = compare(left.left,right.right)
inside = compare(left.right,right.left)
return outside and inside
result = compare(root.left,root.right)
return result