给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:[[15,7],[9,20],[3]]
示例 2:
输入:root = [1]
输出:[[1]]
示例 3:
输入:root = []
输出:[]
# 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]]:
# 方法二 DFS
if not root:return []
res = []
def dfs(root, index):
if root == None:
return []
if len(res) < index:
res.append([])
res[index-1].append(root.val)
dfs(root.left, index+1)
dfs(root.right, index+1)
dfs(root,1)
return res[::-1]
# 方法一 BFS
if not root:return []
queue = [root]
res = []
while queue:
tmp = []
size = len(queue)
for _ in range(size):
node = queue.pop(0)
tmp.append(node.val)
if node.left:
queue.append(node.left)
if node.right:
queue.append(node.right)
res.append(tmp)
return res[::-1]
47. Leetcode 107 - 二叉树的层次遍历 ii (二叉树-二叉树遍历)
最新推荐文章于 2023-07-05 17:19:19 发布