想法:
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def levelOrderBottom(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
if not root:
return []
else:
a = [root] # 存储当前层的节点
res = []
#遍历当前层的节点,以获取下一层的节点(只用一个变量a表示,分界点在提前获取当前层节点个数)
while a:
length = len(a)
temp_list = [] # 依次存储当前层的节点值
for i in range(length): # 顺序遍历当前层节点
temp = a.pop(0)
temp_list.append(temp.val)
if temp.left:
a.append(temp.left)
if temp.right:
a.append(temp.right)
res.append(temp_list)
return res[::-1]