给你二叉树的根节点 root
,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
例:
输入:root = [3,9,20,null,null,15,7] 输出:[[15,7],[9,20],[3]]
解析:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def levelOrderBottom(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
res = []
if root:
queue = [root]
else:
return res
while len(queue):
n = len(queue)
r = []
for _ in range(n):
node = queue.pop(0)
r.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
res.append(r)
res = res[::-1] # 翻转
return res