您当前的位置: 首页 >  leetcode

孑渡

暂无认证

  • 1浏览

    0关注

    178博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【Leetcode】每日一题:N 叉树的层序遍历

孑渡 发布时间:2022-04-08 13:42:07 ,浏览量:1

N 叉树的层序遍历

给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。 树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)

AC代码
"""
# Definition for a Node.
class Node:
    def __init__(self, val=None, children=None):
        self.val = val
        self.children = children
"""

class Solution:
    def levelOrder(self, root: 'Node') -> List[List[int]]:
        if root is None:
            return []
        result = []
        queue = [root]
        while queue != []:
            temp = []
            t = copy.deepcopy(queue)
            for r in t:
                temp.append(r.val)
                queue.pop(0)
                queue += r.children
            result.append(temp)
        return result
官方代码
class Solution:
    def levelOrder(self, root: 'Node') -> List[List[int]]:
        if not root:
            return []

        ans = list()
        q = deque([root])

        while q:
            cnt = len(q)
            level = list()
            for _ in range(cnt):
                cur = q.popleft()
                level.append(cur.val)
                for child in cur.children:
                    q.append(child)
            ans.append(level)

        return ans

# 作者:LeetCode-Solution

1、官方代码用的双端队列,本质其实和笔者的代码是相同的

关注
打赏
1663211900
查看更多评论
立即登录/注册

微信扫码登录

0.0379s