给定一颗n叉树,返回按层级访问树节点的值。(从左到右,一层接一层)
例如,给定一颗三叉树
返回格式为:
[
[1],
[3,2,4],
[5,6]
]
注意:
树深最大为1000
节点总数最多为5000
1、注意题中,当前结点的子树是以列表的形式存放,所以代码对树层级结点的存放格式为双层列表
def levelOrder(self, root):
"""
:type root: Node
:rtype: List[List[int]]
"""
if not root:
return []
back = [] #函数返回的数据
curLevel = [[root]] #当前遍历树的层级,双层列表
while curLevel:
temp = [] #遍历当前层级时存放的临时结点值
nextLevel = [] #下一层树结点
for i in curLevel:
for j in i: #注意,层级节点存放为双层列表
temp.append(j.val)
if j.children: #当前结点是否存在子结点
nextLevel.append(j.children)
back.append(temp)
curLevel = nextLevel
return back
算法题来自:https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/description/
本文介绍了一种算法,用于按层级访问N叉树的节点值,并提供了详细的Python实现代码。该算法首先检查根节点是否为空,然后初始化返回数据结构和当前层级节点列表。通过循环迭代,将当前层级节点值加入临时列表,同时收集下一层级的节点,直至所有层级被遍历。
3877

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



