107. 二叉树的层序遍历 II
Difficulty
Medium
Tags
二叉树
二叉树层次遍历
Star
给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
例如:
3 / \ 9 20 / \ 15 7
返回其自底向上的层序遍历为:
[ [15,7], [9,20], [3] ]
法1:宽度优先搜索
思路
可以发现同 102. 二叉树的层序遍历 类似,只不过输出列表逆序而已,所以插入
result
的时候采用 result.insert(0, temp_list)
方式 或者 在随后return
时 return result[::-1]
解答:
class Solution: def levelOrderBottom(self, root: TreeNode) -> List[List[int]]: result = [] if root is None: return result queue = [] queue.append(root) while len(queue) > 0: temp_len = len(queue) temp_list = [] while temp_len > 0: temp_node = queue.pop(0) temp_list.append(temp_node.val) if temp_node.left: queue.append(temp_node.left) if temp_node.right: queue.append(temp_node.right) temp_len -= 1 result.insert(0, temp_list) return result