LeetCode--429--N叉樹的層序遍歷
阿新 • • 發佈:2018-10-02
leet type eee width spa return new 超過 oot
問題描述:
給定一個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 innode.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 [] 9levels = []#結果存放 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叉樹的層序遍歷