problem
Given the root of a binary tree, return the bottom-up level order traversal of its nodes’ values. (i.e., from left to right, level by level from leaf to root).
Algorithm
bfs. Use bfs travel on the tree, which follows the depth order. Then save each depth of the tree and reverse the list with the depth.
Code
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
Q = []
def dfs(root, d):
if not root:
return
if len(Q) <= d:
Q.append([root.val])
else:
Q[d].append(root.val)
dfs(root.left, d+1)
dfs(root.right, d+1)
dfs(root, 0)
Q.reverse()
return Q

本文介绍了一种从叶子节点到根节点的层次遍历二叉树的方法,并提供了一个使用深度优先搜索实现的具体算法示例。
340

被折叠的 条评论
为什么被折叠?



