107. 二叉树的层序遍历 II

Difficulty
Medium
Tags
二叉树
二叉树层次遍历
Star
给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
例如:
3 / \ 9 20 / \ 15 7
返回其自底向上的层序遍历为:
[ [15,7], [9,20], [3] ]

法1:宽度优先搜索

思路
可以发现同
🥎
102. 二叉树的层序遍历
类似,只不过输出列表逆序而已,所以插入result的时候采用 result.insert(0, temp_list) 方式 或者 在随后returnreturn 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