加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python3解leetcode N-ary Tree Level Order Traversal

发布时间:2020-12-20 12:46:27 所属栏目:Python 来源:网络整理
导读:问题描述: Given an n-ary tree,return the level order traversal of its nodes‘ values. (ie,from left to right,level by level). For example,given a? 3-ary ?tree: ? ? We should return its level order traversal: [ [1],[3,2,4],[5,6]] ? Note: T

问题描述:

Given an n-ary tree,return the level order traversal of its nodes‘ values. (ie,from left to right,level by level).

For example,given a?3-ary?tree:

?

?

We should return its level order traversal:

[
     [1],[3,2,4],[5,6]
]

?

Note:

  1. The depth of the tree is at most?1000.
  2. The total number of nodes is at most?5000.

思路:此题是在leetcode上见到的第一个BFS的题目,因而记录。同时注意该句代码应用方式?Node,level = queue.pop()

代码:

 1 """
 2 # Definition for a Node.
 3 class Node:
 4     def __init__(self,val,children):
 5         self.val = val
 6         self.children = children
 7 """
 8 class Solution:
 9     def levelOrder(self,root: Node) -> List[List[int]]:
10         if not root:
11             return []
12         
13         result,queue = [],[(root,1)]
14         while queue:
15             Node,level = queue.pop()
16             if level - len(result) >= 1:
17                 result.append([])
18             result[level - 1].append(Node.val)
19             
20             for child in Node.children:
21                 queue.insert(0,(child,level+ 1))
22         return result

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读