import queue
class Solution:
def zigzagLevelOrder(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
res = []
q = queue.Queue()
q.put(root)
reverse = False #是否反向,初始为否
while q.qsize() > 0:
count = q.qsize()
data = []
for _ in range(count):
node = q.get()
data.append(node.val)
if node.left:
q.put(node.left)
if node.right:
q.put(node.right)
if reverse: #本层反向
data = data[::-1]
reverse = not reverse #置反
res.append(data)
return res