102-二叉树的层序遍历

CTF逆向-[GWCTF 2019]babyvm-WP-虚机模拟流程反向编码和z3约束求解器解方程工具的使用 CTF逆向-[GWCTF 2019]babyvm-WP-虚机模拟流程反向编码和z3约束求解器解方程工具的使用 来源:https://buuoj.cn/ 内容: 附件:https://pan.baidu.com/s/1FKkXN6JDI0QkGw-UE2crNA?pwd=grb0 提取码:grb0 答案:Y0u_hav3_r3v3rs3_1t! 总体思路 发现是虚机模拟 形成每个指令的逆向 找到加密值位置(有可能不止一个位置,该题就给了一个误导的) 找到命令执行的流程(也是不止一个) 逆向编写反向加密得到f 阅读详情

题目

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

示例:
二叉树:[3,9,20,null,null,15,7],

3
 / \
  9  20
    /  \
   15   7

返回其层序遍历结果:

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

题解

public List<List<Integer>> levelOrder(TreeNode root) {
    List<List<Integer>> res = new ArrayList<>();

    Queue<TreeNode> queue = new ArrayDeque<>();
    if (root != null) {
        queue.add(root);
    }
    while (!queue.isEmpty()) {
        int n = queue.size();
        List<Integer> level = new ArrayList<>();
        for (int i = 0; i < n; i++) { 
            TreeNode node = queue.poll();
            level.add(node.val);
            if (node.left != null) {
                queue.add(node.left);
            }
            if (node.right != null) {
                queue.add(node.right);
            }
        }
        res.add(level);
    }
    return res;
}

思路:

  1. bfs的应用场景:层序遍历,最短路径

BFS 遍历使用队列数据结构:

void bfs(TreeNode root) {
    Queue<TreeNode> queue = new ArrayDeque<>();
    queue.add(root);
    while (!queue.isEmpty()) {
        TreeNode node = queue.poll(); // Java 的 pop 写作 poll()
        if (node.left != null) {
            queue.add(node.left);
        }
        if (node.right != null) {
            queue.add(node.right);
        }
    }
}

两层的结点在队列中紧挨在一起,我们无法区分队列中的结点来自哪一层。

因此,我们需要稍微修改一下代码,在每一层遍历开始前,先记录队列中的结点数量 n(也就是这一层的结点数量),然后一口气处理完这一层的 n 个结点。

题解 js

var levelOrder = function(root) {
    //二叉树的层序遍历
    let res=[],queue=[];
    queue.push(root);
    if(root===null){
        return res;
    }
    while(queue.length!==0){
        // 记录当前层级节点数
        let length=queue.length;
        //存放每一层的节点 
        let curLevel=[];
        for(let i=0;i<length;i++){
            let node=queue.shift();
            curLevel.push(node.val);
            // 存放当前层下一层的节点
            node.left&&queue.push(node.left);
            node.right&&queue.push(node.right);
        }
        //把每一层的结果放到结果数组
        res.push(curLevel);
    }
    return res;
};


var levelOrder = function(root) {
    let res=[],queue=[];
    queue.push(root);
    if(root === null){//****
        return res;
    }
    while(queue.length !== 0){
        // 记录当前层级节点数
        let length = queue.length;
        //存放每一层的节点 
        let curRes = [];
        for(let i=0;i<length;i++){
            let node = queue.shift();
            curRes.push(node.val);
            // 存放当前层下一层的节点
            node.left&&queue.push(node.left);
            node.right&&queue.push(node.right);
        }
        //把每一层的结果放到结果数组
        res.push(curRes);
    }
    return res;
};

笔记:

  1. js:shift 移除数组的第一个元素

  2. 广度优先:队列,出一个就往队列里加入它的孩子

    所以每次的遍历是在遍历那一层的数据!

RHCA II之路---EX442-10 这题比较耗时,可以多开2个窗口让他跑起来后先做后面的题目。 阅读详情

相关推荐

SRAM compiler选项中 Soft Error Repair (SER)

引起的瞬时故障,可能会影响 SRAM 中存储的数据。SER 功能通过某种机制检测并修复这些错误,从而提高存储器的可靠性。在 SRAM 编译器中,

hzmscut的博客 1158

102. 二叉树的层序遍历

102. 二叉树的层序遍历 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] class Solution { public List<List<Integer>> levelOrder(TreeNode

shichap的博客 214

从CCD数据上报看wxHOOK的封号风险与规避

本文深入分析了微信CCD数据上报机制对wxHOOK的检测逻辑与封号风险,揭示了调试器路径暴露、非白名单DLL加载和内存校验失败等关键风险点。通过实战案例和规避方案,帮助开发者理解如何安全使用wxHOOK技术,避免封号风险,包括内存镜像欺骗、内核级隐蔽和硬件辅助方案等高级技巧。

weixin_27875131的博客 635

二叉树的层序遍历-代码随想录

2.层序遍历的本质类似于图论中的广度优先遍历,运用过程为我们把每层的孩子节点推进队列,同时按照记录的每层的节点size弹出元素。Cpp代码中size为que.size的快照,在while循环中。que.size的大小是不断变化的。给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点)。思路:1.解题要求要一层一层的遍历二叉树。因此考虑用队列先进先出的特性,来呈现遍历的层次。

usa_ham的博客 283

高级Salesforce开发面试题

自定义设置允许您创建自定义数据集,以及为组织、配置文件或特定用户创建和关联自定义数据。自定义元数据类似于自定义设置,但是自定义元数据类型中的记录被视为元数据而不是数据。自定义设置有列表和层次自定义设置两种。自定义元数据中没有此类类型。此外,自定义元数据不支持基于用户配置文件或特定用户的层次结构类型的数据。自定义设置现在不再支持关系字段。但您可以在自定义元数据对象之间创建查找。元数据查询不占用查询sql次数的限制。

weixin_45663522的博客 1246

注册电气工程师详细教材

注册电气工程师详细教材

qq_40844444的博客 4261

leecode 102. 二叉树的层序遍历

102. 二叉树的层序遍历 本题仍然有两种做法,递归和迭代,详细见代码。 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val = val; } * TreeNod

maocaicai的博客 459

卷积神经网络-猫狗识别(附源码)

利用python实现一个卷积神经网络,训练猫狗数据集,实现对猫狗图片的预测识别

m0_63223213的博客 2万+

PTA 二叉搜索树的删除操作 (C 语言)

给出一棵二叉搜索树(没有相同元素), 请输出其删除部分元素之后的层序遍历序列。

xiao_hei_a的博客 1675

OpenRadar Matlab版:毫米波雷达信号处理全流程开源库详解

毫米波雷达数据解析与信号处理是感知领域的基础能力。本文介绍毫米波雷达从ADC原始采样到距离-多普勒(Range-Doppler)热图、CFAR检测、DOA估计直至点云与生命体征参数提取的完整处理链路,并深入讲解OpenRadar(Matlab版)开源库的内核设计、核心API与实测经验。从原理上看,距离FFT与多普勒FFT构成RD谱,CFAR自适应阈值实现目标检测,相位解缠与滤波用于呼吸心跳提取。技术价值在于将繁琐的雷达数据读取、矩阵变换和算法流程标准化,免去重复造轮子。可应用于人员存在感知、生命体征监护、4

weixin_33806859的博客 322

C# 与华中数控设备通信:数控机床自动化控制与实时监测系统

华中数控系统与C#通信开发指南 核心要点 通信基础 支持串口(RS232/RS485)和以太网两种连接方式 协议选择:通用Modbus协议或华中自定义HNC协议 关键数据映射表明确各参数对应的寄存器地址和功能码 系统架构 四层架构:设备层→通信层→业务层→应用层 包含实时数据采集、指令下发、状态监控、异常处理全流程 支持Modbus和HNC协议动态切换 代码实现 串口通信使用NModbus库简化开发 提供连接管理、数据读取、指令下发完整示例 包含异常处理和超时重连机制 应用价值 实现数控机床远程监控和自动化

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2025

Leetcode 对称二叉树 二叉树的层次遍历 翻转二叉树

对称二叉树 什么是对称二叉树? 如上图所示 判断一个二叉树是否为对称二叉树? 判断步骤:1.头节点的左子树节点是否等于右子树节点; 2.左子树节点的左子树节点是否等于右子树节点的右子树节点; 3.左子树节点的右子树节点是否等于右子树节点的左子树节点; 是否等于的情况可以分为四种类型: 1.left == null && right == null; true 2.left != null &am...

JIE25的博客 339

【100%通过率】华为OD机试真题 JS 实现【水库蓄水问题】【2023 Q1 | 100分】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 8176

二叉树层序遍历 Leetcode102.二叉树的层序遍历

二叉树的层序遍历相当于图论的广度优先搜索,用队列来实现(二叉树的递归遍历相当于图论的深度优先搜索)

m0_74096700的博客 1457

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Leetcode 102. 二叉树的层序遍历

Leetcode 102. 二叉树的层序遍历1、问题分析2、问题解决3、总结 1、问题分析 题目链接:https://leetcode-cn.com/problems/binary-tree-level-order-traversal/   本质上就是一个二叉树的遍历问题。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。 2、问题解决   笔者以C++方式解决。 #include "iostream" using namespace

珍惜 8975

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LeetCode 102题解 | 二叉树的层序遍历

二叉树的层序遍历

2401_87255690的博客 987

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

LeetCode第102题_二叉树的层序遍历

给你二叉树的根节点root,返回其节点值的。(即逐层地,从左到右访问所有节点)。

qq_40263592的博客 1325

Leetcode102. 二叉树的层序遍历

Leetcode102. 二叉树的层序遍历 class Solution { public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> result = new ArrayList<>(); if (root == null) { return result; }

Loser_you的博客 174

LeetCode —— 102. 二叉树的层序遍历

LeetCode —— 102. 二叉树的层序遍历

微笑,来自内心坚不可摧的自信。 740

力扣102.二叉树的层序遍历

力扣102.二叉树的层序遍历 最近在学习数据结构树的相关知识,于是就去力扣刷题。我是一枚蒟蒻,一天时间琢磨出来两题(惭愧),现在分享一下解题过程,大佬勿喷~ 题目描述 给你一个二叉树,请你返回其按层序遍历得到的节点值。(即逐层地,从左到右访问所有节点)。 示例: 解题方法 方法一 DFS 直接上代码: /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left;

qq_46062236的博客 333

LeetCode 102:二叉树的层序遍历

目录LeetCode 102:二叉树的层序遍历题目描述解题 LeetCode 102:二叉树的层序遍历 题目描述 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 【示例】 二叉树:[3,9,20,null,null,15,7],    3   /   \ 9    20      /  \    15    7 返回其层次遍历结果: [ [3], [9,20], [15,7]] 解题     需要遍历完当前层之后再遍历下一层,自然而然想到

s_Shune 144

LeetCode102. 二叉树的层序遍历

LeetCode102. 二叉树的层序遍历 题目描述 102. 二叉树的层序遍历 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。(即逐层地,从左到右访问所有节点) 样例 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ]...

Erice_s的博客 407

LeetCode102_102. 二叉树的层序遍历

LeetCode102_102. 二叉树的层序遍历

luoyepiaoxue2014的博客 1904

LeetCode102. 二叉树的层序遍历Golang版

LeetCode102. 二叉树的层序遍历Golang版 1. 问题描述 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 2. 思路 层序遍历模板题 3. 代码 /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func levelOrde

菜到不敢run 216

leetcode#102 二叉树的层序遍历

leetcode#102 二叉树的层序遍历 题目 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层序遍历结果: [ [3], [9,20], [15,7] ] 思路: 1、bfs 正常bfs,不用记录节点是第几层,用一个循环,每次遍历当前层的节点即可,当下一次遍历时,队列中的节点就是下

weixin_48673014的博客 122

LeetCode102.二叉树层序遍历

本文详细解析了二叉树的层序遍历算法及其实现。第一部分通过示例和BFS队列机制阐述了层序遍历的核心思路,重点讲解了如何通过记录level_size实现分层处理。第二部分逐行分析了核心代码,包括deque的使用、节点处理逻辑和分层技巧。第三部分介绍了从列表构建二叉树的方法,为测试提供便利。全文通过清晰的执行流程演示和关键问题解答,帮助读者深入理解层序遍历的实现原理和应用场景。

lcreek的博客 418
上一篇: 101-对称二叉树
下一篇: 124-二叉树中的最大路径和
codrab
博客等级 码龄10年 15粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

codrab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值