广度优先遍历_LeetCode | 广度优先遍历

b797306a7e2ad8d3278cae58a1cc2bab.png

阅读本文大约需要 4 分钟

概述

  • 前言

  • 429 N 叉树的层次遍历 90.36%

  • 102 二叉树的层次遍历 99.76%

  • 后记

前言

不管经济多不好,提高自身硬实力才是关键。本文由一个骚包程序猿zone7撰写,欢迎关注。

429 N 叉树的层次遍历 90.36%

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

例如,给定一个 3叉树 :

7c221db3cee4846d0328d8cb083e5ba5.png

返回其层序遍历:

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

说明:

  1. 树的深度不会超过 1000

  2. 树的节点总数不会超过 5000

思路

如果你有读我前面的文章就知道,其实这个就是二叉树层次遍历的一个变形。

for child in current.children:    
                    que.append(child);

用这句代码替换了左右子树加入队列。

解答

# 运行效率:90.36%
"""
# Definition for a Node.
class Node(object):
    def __init__(self, val, children):
        self.val = val
        self.children = children
"""
class Solution(object):

    def levelOrder(self, root):
        """
        :type root: Node
        :rtype: List[List[int]]
        """
        if not root:
            return [];
        que = [];    
        res = [];    
        que.append(root);    
        while len(que):     
            l = len(que);
            sub = [];        
            for i in range(l):
                current = que.pop(0);    
                sub.append(current.val);
                for child in current.children:    
                    que.append(child);
            res.append(sub);    
        return res;

102 二叉树的层次遍历 99.76%

给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。

例如:
给定二叉树: [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

返回其层次遍历结果:

[
  [3],
  [9,20],
  [15,7]
]

思路

嗯,这就是上篇文章《python 实现二叉树的深度&&广度优先的遍历》中的层次遍历代码。不用解释太多了。

解答

# 运行效率:99.76%
# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def levelOrder(self, root):
        if not root:
            return []
        ret = []
        ret.append(root)
        ret2 = []
        while len(ret) != 0:
            temp = []
            length = len(ret)
            for index in range(length):
                tempValue = ret.pop(0)
                temp.append(tempValue.val)
                if tempValue.left is not None:
                    ret.append(tempValue.left)
                if tempValue.right is not None:
                    ret.append(tempValue.right)
            ret2.append(temp)
        return ret2

后记

今天的题就到这里了,如果你有什么好刷题的建议可以留言或者后台私信给我,我会分享给大家。

往期推荐:

python 实现二叉树的深度 & 广度优先遍历

c50ecb0c858a7f395e5bc7e4db89ed70.png

欢迎关注这个骚包程序猿?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c写成php的扩展_用C语言编写PHP扩展

1:预定义vi myfunctions.defstring self_concat(string str, int n)2:到PHP源码目录的ext目录#cd /usr/local/php-5.4.0/ext/执行命令,生成对应扩展目录#./ext_skel --extnamecaleng_module --proto/home/hm/caleng_module.def./ext_skel --e…

LeetCode 1958. 检查操作是否合法(模拟)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的 8 x 8 网格 board ,其中 board[r][c] 表示游戏棋盘上的格子 (r, c) 。 棋盘上空格用 . 表示,白色格子用 W 表示,黑色格子用 B 表示。 游戏中每次操作步骤为:选择一个空格…

php获取周几,php怎么获得星期几

php怎么获得星期几2021-03-07 15:06:02php获得星期几的方法:首先创建一个PHP示例文件;然后定义一个数组;最后通过“echo "星期".$weekarray[date("w")];”方式获得星期几即可。本文操作环境:Windows7系统、PH…

电脑假死卡的动不了_最近遇到奇怪电脑问题(实战篇)

点击蓝字关注我们话不多扯,说事最近遇到奇怪电脑问题装的是7系统32位开机可以进入系统插着网线开机,就假死拔掉网线开机,正常,然后插上网线依旧正常再带着网线关机,开机后又成假死假死后拔下网线依旧恢复不了必须是不插…

HTTP Post

// testHttp003.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h"// webrequest.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <string> #include <fstream> #include <winsock2.h> #include <std…

LeetCode 1961. 检查字符串是否为数组前缀

文章目录1. 题目2. 解题1. 题目 给你一个字符串 s 和一个字符串数组 words &#xff0c;请你判断 s 是否为 words 的 前缀字符串 。 字符串 s 要成为 words 的 前缀字符串 &#xff0c;需要满足&#xff1a;s 可以由 words 中的前 k&#xff08;k 为 正数 &#xff09;个字符…

php怎样加速,php 提速

php 提速2007-08-13 10:06这篇杂文翻译整理自网络各路文档资料(见最末的参考资料)&#xff0c;尤其是 Ilia Alshanetsky (佩服之至) 在多个 PHP 会议上的演讲&#xff0c;主要是各类提高 PHP 性能的技巧。为求精准&#xff0c;很多部分都有详细的效率数据&#xff0c;以及对应的…

ios UIScrollView 基础属性

转 UIScrollView 原理 在滚动过程当中&#xff0c;其实是在修改原点坐标。当手指触摸后, scroll view会暂时拦截触摸事件,使用一个计时器。假如在计时器到点后没有发生手指移动事件&#xff0c;那么 scroll view 发送 tracking events 到被点击的 subview。假如在计时器到点前发…

LeetCode 1962. 移除石子使总数最小(优先队列)

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 piles &#xff0c;数组 下标从 0 开始 &#xff0c;其中 piles[i] 表示第 i 堆石子中的石子数量。 另给你一个整数 k &#xff0c;请你执行下述操作 恰好 k 次&#xff1a; 选出任一石子堆 piles[i] &#xff0c;并从中 移除…

ubuntu自定义安装里怎么选_中央空调到底应该怎么选?小户型也能安装中央空调?行家说实话了...

▲ 点击蓝字“建通舒适家”&#xff0c;你想知道的空调问题&#xff0c;答案全在这里啦&#xff01;中央空调到底应该怎么选&#xff1f;小户型也能安装中央空调&#xff1f;行家说实话了现在业主装修大多都是对中央控空调一知半解&#xff0c;出现很多种的情况就是&#xff1a…

php辅助框架,【PHP开发框架】Laravel框架中辅助函数:optional ()函数的介绍

laravel框架中的辅助函数有很多&#xff0c;那么&#xff0c;在 Laravel 新版本中又有什么非常好用的辅助函数呢&#xff1f;接下来的这篇文章中&#xff0c;ki4网将给大家介绍一个非常有用的辅助方法&#xff1a;optional()函数&#xff0c;这个函数的用处到底是什么呢&#x…

python 清除字符串中的 emoji 表情

https://pypi.org/project/emoji/ pip install emoji字符串中间有 emoji 表情&#xff0c;替换掉。 text "&#x1f430;贝贝有点甜&#x1f430;" res emoji.demojize(text) # :rabbit_face:贝贝有点甜:rabbit_face:# 正则表达式替换为 r"想换的字符串&quo…

Linux CentOS7/RHEL7关闭ctrl+alt+delete功能键

这是本人测试的经过&#xff0c;纯粹记录来看看&#xff0c;最终解决方法在最后面&#xff0c;中间讲的是遇到的一些坑&#xff0c;可以略过不看&#xff01;&#xff01; 本人操作经验&#xff0c;转载请表明出处&#xff1a;http://www.cnblogs.com/huangjc/p/4536620.html L…

三角形css_纯 CSS 实现绘制各种三角形(各种角度)

一、前言三角形实现原理&#xff1a;宽度width为0&#xff1b;height为0&#xff1b;&#xff08;1&#xff09;有一条横竖边&#xff08;上下左右&#xff09;的设置为border-方向&#xff1a;长度 solid red&#xff0c;这个画的就是底部的直线。其他边使用border-方向&#…

java 排秩,lamd(java lambda表达式)

lamb n.羔羊&#xff0c; 小羊羔羊肉[皮](对孩子等的爱称)好宝宝&#xff0c; 小乖乖年幼、天真无邪的人&#xff1b; 羔羊般柔弱[温顺]的人[俚]容易上当的人(尤指在证券交易方面)[the Lamb ]【宗.lamd是什么意思land n. 国土&#xff1b;陆地&#xff1b;地面lamb n. 羔羊&…

LeetCode 1826. 有缺陷的传感器(枚举)

文章目录1. 题目2. 解题1. 题目 实验室里正在进行一项实验。为了确保数据的准确性&#xff0c;同时使用 两个 传感器来采集数据。 您将获得2个数组 sensor1 and sensor2&#xff0c;其中 sensor1[i] 和 sensor2[i] 分别是两个传感器对第 i 个数据点采集到的数据。 但是&#…

今天携程出事了:让我们来学习下http的响应码

就在今天&#xff0c;2015年5月28日&#xff0c;中国最大的旅游机票预订网站--携程网粗大事了。据传携程网的数据库被人物理删除了&#xff0c;而容灾备份的数据又无法正常使用&#xff0c;服务器全面遭受瘫痪。每小时给携程带来的损失约100万美元。巴拉巴拉&#xff0c;作为中…

java 删除txt,如何从.txt文件中删除2个值

if "A" in columns and int(columns[5]) < int(columns[3]):print(columns)print (columns[3]) - (columns[5])我在这做错了什么&#xff1f;不记得我最近开始编码 .这是完整的代码&#xff1a;import csvFILE_NAME "paintingJobs.txt" #I use this so…

LeetCode 1708. 长度为 K 的最大子数组

文章目录1. 题目2. 解题1. 题目 在数组 A 和数组 B 中&#xff0c;对于第一个满足 A[i] ! B[i] 的索引 i &#xff0c;当 A[i] > B[i] 时&#xff0c;数组 A 大于数组 B。 例如&#xff0c;对于索引从 0 开始的数组&#xff1a; [1,3,2,4] > [1,2,2,4] &#xff0c;因…

CSS3(animation, trasfrom)总结

CSS3(animation, trasfrom)总结 1. Animation 样式写法: 格式: -浏览器内核-keyframes 样式名 {} 标准写法(chrome safari不支持 keyframes [样式名] { 0% {left: 10px ; top : 20px;} 50% {left: 20px ; top : 30px;} 100% {left: 10px ; top : 20px;} }; Firefox -mz-keyfra…