• LeetCode--429--N叉树的层序遍历


    问题描述:

    给定一个N叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。

    例如,给定一个 3叉树 :

    返回其层序遍历:

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

    说明:

    1. 树的深度不会超过 1000
    2. 树的节点总数不会超过 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

  • 相关阅读:
    Appium环境配置
    MongoDB_09——执行计划
    mongoDB_08索引的操作
    MongoDB常用命令
    MongoDB_07_复杂查询
    MongoDB_06_分页查询
    docker-ce 安装
    Kubernetes集群搭建 ver1.20.5
    Deploying Portainer CE in Docker
    mysql常用命令
  • 原文地址:https://www.cnblogs.com/NPC-assange/p/9736334.html
Copyright © 2020-2023  润新知