LeetCode--429--N叉树的层序遍历
Posted Assange
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode--429--N叉树的层序遍历相关的知识,希望对你有一定的参考价值。
问题描述:
给定一个N叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
例如,给定一个 3叉树
:
返回其层序遍历:
[ [1], [3,2,4], [5,6] ]
说明:
- 树的深度不会超过
1000
。 - 树的节点总数不会超过
5000
。
方法1:
1 class Solution(object): 2 def levelOrder(self, root): 3 """ 4 :type root: Node 5 :rtype: List[List[int]] 6 """ 7 if not root: 8 return [] 9 res = [[]] 10 que = [(root,0)] 11 while que: 12 node,level = que.pop(0) 13 if level >= len(res): 14 res.append([]) 15 res[level].append(node.val) 16 for child in node.children: 17 que.append((child,level + 1)) 18 return res
方法2:
1 class Solution(object): 2 def levelOrder(self, root): 3 """ 4 :type root: Node 5 :rtype: List[List[int]] 6 """ 7 if not root: 8 return [] 9 levels = []#结果存放 10 q = [root] 11 while q: 12 new_q = []#当前层的结点 13 level=[]#当前层的结点的val 14 for node in q: 15 level.append(node.val) 16 for child in node.children: 17 new_q.append(child) 18 levels.append(level)#把当前层的val加入到结果集中 19 q = new_q 20 return levels
2018-10-02 09:14:56
以上是关于LeetCode--429--N叉树的层序遍历的主要内容,如果未能解决你的问题,请参考以下文章