剑指 Offer 32 - I. 从上到下打印二叉树(golang版)

MFC界面库BCGControlBar v32.0 - 对话框、仪表盘控件升级 亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFCv32.0正式发布!新版本支持Windows 11、增强功能区简化模式、改进控件外观等,以及其他新功能和改进。需要最新版的可以点击这里【BCG下载】 BCGControlBar Pro for MFC v32.0正式版下载 对话框和表单 1. 添加了一个新的全局标志globalData.m_bAutoPrepareComboListStyles:如果您希望. 阅读详情
  • 题目描述
从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
例如:
给定二叉树: [3,9,20,null,null,15,7],
    3
   / \
  9  20
    /  \
   15   7
返回:
[3,9,20,15,7]
 
提示:
节点总数 <= 1000

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
  • 思路
    1、需要一个tmp切片( []*TreeNode )保存树的节点信息,在遍历树的时候,将节点的值保存在结果res切片中,将节点的左右子树依次保存在tmp中,遍历tmp取值即可
    2、注意输入的二叉树可能是空树

  • 代码

func levelOrder(root *TreeNode) []int {
	//保存结果,最后将该切片返回
	res := make([]int,0)
	//处理可能是空二叉树的情况
	if root == nil {
		return res
	}
	//tmp保存二叉树的节点,先将根节点保存在tmp中
	tmp := make([]*TreeNode,0)
	tmp = append(tmp,root)
	//一直循环,直到tmp为空
	for len(tmp) > 0 {
		len := len(tmp)
		//处理这一层级的二叉树,将该层级节点的所有值保存在res中,所有子节点保存在tmp中
		for _, v := range tmp {
			res = append(res,v.Val)
			if v.Left != nil{
				tmp = append(tmp,v.Left)
			}
			if v.Right != nil{
				tmp = append(tmp,v.Right)
			}
		}
		//删掉已处理的层级的节点值
		tmp = tmp[len:]
	}

	return res
}
  • 测试代码
package main

import "fmt"

type TreeNode struct {
     Val int
     Left *TreeNode
     Right *TreeNode
}

func main() {
	root := &TreeNode{3,nil,nil}
	root.Left = &TreeNode{9,nil,nil}
	root.Right = &TreeNode{20,nil,nil}
	root.Right.Left = &TreeNode{15,nil,nil}
	root.Right.Right = &TreeNode{7,nil,nil}
	//root := &TreeNode{}
	fmt.Println( levelOrder(root) )
}

func levelOrder(root *TreeNode) []int {
	//保存结果,最后将该切片返回
	res := make([]int,0)
	//处理可能是空二叉树的情况
	if root == nil {
		return res
	}
	//tmp保存二叉树的节点,先将根节点保存在tmp中
	tmp := make([]*TreeNode,0)
	tmp = append(tmp,root)
	//一直循环,直到tmp为空
	for len(tmp) > 0 {
		len := len(tmp)
		//处理这一层级的二叉树,将该层级节点的所有值保存在res中,所有子节点保存在tmp中
		for _, v := range tmp {
			res = append(res,v.Val)
			if v.Left != nil{
				tmp = append(tmp,v.Left)
			}
			if v.Right != nil{
				tmp = append(tmp,v.Right)
			}
		}
		//删掉已处理的层级的节点值
		tmp = tmp[len:]
	}

	return res
}

【AI生成】 LoRa无中心自组网实现方案 LoRa技术是一种低功耗广域网通信技术,它采用了扩频频率调制技术,能够实现远距离的传输。LoRa在物联网中具有重要的应用价值,可以支持大规模的设备连接并且具有较低的成本。同时,LoRa具有高度的抗干扰能力和适应性,能够在复杂的环境中实现稳定的通信。通过使用无中心自组网实现方案,可以进一步提高LoRa网络的灵活性和可靠性,实现设备之间的智能互联。LoRa无中心自组网实现方案将为物联网应用提供更加便捷和高效的通信解决方案。LoRa无中心自组网实现方案一、无中心自组网概念及优势。 阅读详情

相关推荐

C#连接数据库报Authentication to host ‘127.0.0.1‘ for user ‘root‘ using method ‘caching_sha2_password‘ fail

所以导致的,除了上边的办法,还可以把这个加密规则修改一下,这个的修改方式有很多,具体原因是因为MySQL8.0以前的加密规则是。

weixin_42209881的博客 4128

剑指Offer32-1. 从上到下打印二叉树Golang版

剑指Offer32-1. 从上到下打印二叉树Golang版 1. 问题描述 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回: [3,9,20,15,7] 提示: 节点总数 <= 1000 2. 思路 把二叉树上的数据,按照从上到下,从左到右的顺序,放到队列里。 3. 代码 /** * Definition for a binary tree node. *

菜到不敢run 358

从零构建物联网监控系统:STM32+迪文屏+WiFi模组的实战解析

本文详细解析了基于STM32微控制器、迪文串口屏和WiFi模组构建物联网监控系统的完整方案。从硬件选型、系统架构设计到数据交互实现,提供了包括迪文屏GUI开发、STM32通信协议、低功耗优化等实战经验,帮助开发者快速掌握物联网监控系统的核心技术。

docker7nomad的博客 730

leetcode 打印_golang刷leetcode 技巧(18)从上到下打印二叉树 II,III

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。例如:给定二叉树: [3,9,20,null,null,15,7],3/ \9 20/ \15 7返回其层次遍历结果:[[3],[9,20],[15,7]]提示:节点总数 <= 1000解题思路:1,本题和上题的区别是,每一层单独打一行2,我们可以在插入下一层之前记录当前层的个数,即但强队列的长度3,打印完当...

weixin_35828255的博客 252

空天大模型详解

空天大模型是指面向空天信息领域(如卫星遥感、导航、气象等)设计的多模态人工智能模型,能够处理海量遥感数据、多传感器信息及跨时空分析任务。多模态融合:整合可见光、雷达、热红外、多光谱等多源遥感数据,构建统一表征空间,例如“空天·灵眸”3.0版支持航空、卫星及无人机数据的自动化解译。轻量化与高效推理:针对星载计算场景,采用分层量化、跨模态蒸馏技术压缩模型参数(如JigonGPT从1.02B压缩至0.23B,性能仅牺牲5.2%)18,并通过热传导架构提升计算速度2.4倍。神经符号结合。

zxy98的专栏 1570

等保测评-达梦数据库

一般适用于等保测评

m0_54146694的博客 1298

[算法]剑指offer p23二叉树层级遍历 golang

[算法]剑指offer p23二叉树层级遍历 golang 题目 题目:从上往下打印出二叉树的每个结点,同一层的结点按照从左到右的顺序打印。例如输入图中的二叉树,则依次打印出 8 6 10 5 7 9 11 节点定义 type BTree struct { value int left *BTree right *BTree } 解法1 思路是: 使用队列维护节点 package main import ( "fmt" "testing" "github.com/d

半亩方糖 486

抑制电磁干扰(EMI)的实用电路技术

抑制电磁干扰(EMI)的实用电路技术 qtFK_EMC_EMI 【导读】本系列文章的第 1 部分至第 4 部分详细介绍了开关电源稳压器引起的传导发射和辐射发射,包括噪声产生机制、测量要求、频率范围、适用的测试限值、传播模式和寄生效应。在第 5 部分中,我将基于这一理论基础介绍抑制电磁干扰 (EMI) 的实用电路技术。 一般来说,电路原理图和印刷电路板 (PCB) 对于实现出色的 EMI 性能至关重要。第 3 部分重点强调通过谨慎的元器件选型和 PCB 布局尽量减小“功率回路”寄生电感的重要性。电源转换

学海无涯的专栏 1192

【LeetCode】剑指 Offer 32 - II. 从上到下打印二叉树 II - Go 语言题解

剑指 Offer 32 - II. 从上到下打印二叉树 II Go语言题解

weixin_44211968的博客 486

《囚徒健身》 六艺,十式

文章目录《囚徒健身》 六艺,十式1、六艺,十式2、优缺点3、手臂和上半身 《囚徒健身》 六艺,十式 1、六艺,十式 1、俯卧撑: 2、深蹲: 3、举腿: 4、引体向上: 5、桥: 6、倒立撑: 十式就是每个动作分拆为十个不同的动作等级,进行训练 每一式里面,又根据做的组数和个数,分成三层,初级,中级,高级 依次循序渐进,每完成上一个动作的高级,则向下一个动作前进 2、优缺点 优点 : 六个动作都是很常见的,日常的动作,不太需要依赖什么器械,随时随地都可以练习,很方便 这些动作可以覆盖到全身大部分

简简单单Onlinezuozuo 4564

cuRobo 入门教程(二)基于CUDA的机器人运动规划加速库

cuRobo是一款基于CUDA加速的机器人算法库,提供正向/逆向运动学、碰撞检测、数值优化等核心功能,支持在NVIDIA Jetson Orin等平台上实现毫秒级运动规划。该库创新性地采用并行轨迹优化技术,结合nvblox工具实现深度摄像头避障功能,并通过多层ESDF结构处理动态障碍物。性能测试显示,在RTX 6000 Ada显卡上可实现99.85%的成功率,平均规划时间仅39毫秒。cuRobo还提供Python API支持神经网络集成,并具备批量环境处理能力,特别适用于工业机器人应用场景。最新版本通过算法

2506_90492529的博客 1303

【数据结构与算法】【14】以树状形式打印二叉树

技术难点以树状形式打印二叉树的关键难点在于,如何计算和控制每个节点的打印位置解决思路将二叉树的所有节点从左往右全部打印出来,正好和二叉树中序遍历的结果是一样的利用这个特点,我们就可以通过中序遍历结果,来反推每个节点位置,再按广度优先遍历算法,逐行打印即可具体方案和流程图如下二叉树 中序遍历每个字符间要保持一定间隔,所以加上占位符 广度优先遍历保持每个节点横向位置不变,根据广度优先遍历调整节点层次位置 将占位符替换为连接符和空白字符 这样就大功告成了,思路有了,实现就不难了注意细节实现代码这里我们只讲解怎么打

天天向上 Up Up Up (*^▽^*) 4870

SAP VC 可配置物料超级BOM简介

在有些业务中比如:汽车、笔记本、电脑、电梯等产品中,其中组成产品的型号个框架是确认的 ,但是框架内部的BOM是可变的,在客户下销售订单的时候,选取对应的组件 ,让后通过MRP的计算优生产线对这样的销售订单提供生产。这个时候我们需要选择我们需要的内存和硬盘的型号,还记得我们前面创建的特征值对应的吗,A对应的8G、B对应16G、X对应1T硬盘、Y对应2T硬盘,这里我们填写对应的值,我们这里选择16G的内存和2T的硬盘,B和Y。3、当我们选择了可配置物料的生产模式时,基本上就选择了按单生产的生产模式了。

我小时候很黑的博客 1万+

【Golang】LeetCode-剑指Offer-面试题32 - I-从上到下打印二叉树【两种解法】

题目 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 如:给定二叉树: [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回:[3,9,20,15,7] 提示: 节点总数 <= 1000 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/pro...

士多啤梨先生の博客 287

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

怀旧版电脑GBC模拟器

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

Golang算法-树([剑指 Offer 32 - I. 从上到下打印二叉树)

剑指 Offer 32 - I. 从上到下打印二叉树 /** * Definition for a binary tree node. * type TreeNode struct { * Val int * Left *TreeNode * Right *TreeNode * } */ func levelOrder(root *TreeNode) []int { treenums := []int{} //一、处理例外情况 if root =

weixin_53970851的博客 224

Statistics and Machine Learning Toolbox

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

剑指 Offer 32 - I. 从上到下打印二叉树

广度优先遍历 二叉树

weixin_45122172的博客 138

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

【剑指offer】32-1 从上到下打印二叉树

32-1 从上到下打印二叉树 面试题32 - I. 从上到下打印二叉树 难度中等10 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回: [3,9,20,15,7] th:一个队列存储遍历的节点,先存储root结点...

芝兰生于深谷,不以无人而不芳 557

32 - I. 从上到下打印二叉树

文章目录剑指offer 32 - I. 从上到下打印二叉树解题思路树的广度优先搜索(BFS)模板Java代码 剑指offer 32 - I. 从上到下打印二叉树 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回: [3,9,20,15,7] 提示: 节点总数 <= 1000 解题思路 遍历树时,前中后序都可以用递归,但也可以

YouMing_Li的博客 290

剑指offer 32-1 32-2从上到下打印二叉树

1、从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回: [3,9,20,15,7] 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-lcof 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 /** * Definit

Heraldviktor的博客 219

剑指offer打印二叉树

32.重上到下打印二叉树 题目:从上往下打印出二叉树的每个节点,同层节点从左至右打印。 思路:没打印一个节点时,如果该节点有子节点,就把该子节点放到队列的末尾,接下来到队列的头部去除最早入队的节点 struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : ...

qq_43158292的博客 129

【Golang】LeetCode-剑指Offer-面试题32 - II-从上到下打印二叉树 II

题目 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历的结果: [[3],[9,20],[15,7]] 提示:节点总数 <= 1000 来源:力扣(LeetCode...

士多啤梨先生の博客 282

LeetCode—剑指 Offer 32 - I、II、III. 从上到下打印二叉树

题目描述: [I] 从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。 [II] 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 [III] 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。考察重点:着重注意题目3,使用Golang中的list数据结构,作为队列进行层次遍历。 第一题 第二题 第三题

koooooooo5的博客 482

剑指Offer32-2 从上到下打印二叉树2Golang版

剑指Offer32-2 从上到下打印二叉树2Golang版 1. 问题描述 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 提示: 节点总数 <= 1000 2. 思路 按层打印: 题目要求的二叉树的 从上至下 打印(即按层打印),又称为二叉树的 广度优先搜索(BFS)。BFS 通常借

菜到不敢run 268

LC: 剑指 Offer 32 - III. 从上到下打印二叉树 III

题目: 剑指 Offer 32 - III. 从上到下打印二叉树 III。 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 链接:https://leetcode-cn.com/leetbook/read/illustrate-lcof/xs0paj/ 示例: 例如: 给定二叉树: [3,9,20,null,null,15,7], 思路: 树的广度优先遍历。 首先将上一层节点存入队列,队列不为空时执行循

qq_41596063的博客 350

剑指 Offer 32 - I. 从上到下打印二叉树(BFS)

剑指 Offer 32 - I. 从上到下打印二叉树(BFS)

梦~' 171

【Golang】LeetCode-剑指Offer-面试题32 - III-从上到下打印二叉树 III

题目 请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层次遍历结果: [ [3], [20,9], [15,7] ] ...

士多啤梨先生の博客 320
上一篇: 剑指 Offer 31. 栈的压入、弹出序列(golang版)
下一篇: 剑指 Offer 32 - II. 从上到下打印二叉树 II(golang版)
l_mofi
博客等级 码龄9年 7粉丝 78原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值