题目
思路
层次遍历,记录层数,逆序输出即可。
代码
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def zigzagLevelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
res_list = []
queue = []
tmp_list = []
if root: queue.append(root)
level = 0
num_list = []
while queue:
node = queue[0]
num_list.append(node.val)
queue.pop(0)
if node.left: tmp_list.append(node.left)
if node.right: tmp_list.append(node.right)
if not queue:
if level % 2: res_list.append(num_list[::-1])
else: res_list.append(num_list[:])
num_list = []
level += 1
queue[:] = tmp_list[:]
tmp_list = []
return res_list