【题目】
给定一个二叉树,返回其节点值自底向上的层序遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
例如:
给定二叉树 [3,9,20,null,null,15,7],
3
/
9 20
/
15 7
返回其自底向上的层序遍历为:
[
[15,7],
[9,20],
[3]
]
【代码】

# 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 dfs(self,root,dep):
if not root:
return
if len(self.ans)<dep:
self.ans.append([root.val])
else:
self.ans[dep-1].append(root.val)
self.dfs(root.left,dep+1)
self.dfs(root.right,dep+1)
def levelOrderBottom(self, root: TreeNode) -> List[List[int]]:
if not root:
return []
self.ans=[]
self.dfs(root,1)
return self.ans[::-1]

这是一个关于二叉树操作的问题,代码实现了一个自底向上的层序遍历方法。首先通过深度优先搜索(DFS)进行遍历,并记录节点值,然后将结果反转得到自底向上的顺序。给定的示例二叉树经过此方法处理后,返回了自底向上的层序遍历结果。
539

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



