思路:层次遍历,基数层节点翻转
注意:
1、注意每次只处理当前层的节点,而不是遍历que中的全部节点
2、for循环之外为层级别的处理,for循环内部为层内节点级别的处理
3、每处理一个que中的节点,要将其pop,否则处理下一层节点时,还会重复处理
class Solution:
def Print(self , p: TreeNode) -> List[List[int]]:
# write code here
if not p:
return []
que = [p]
level = 0
result = []
while que:
l = len(que)
cur_layer = []
for _ in range(l):
node = que.pop(0)
if level % 2 == 0:
cur_layer.append(node.val)
else:
cur_layer.insert(0, node.val)
if node.left:
que.append(node.left)
if node.right:
que.append(node.right)
level += 1
result.append(cur_layer)
return result