当前位置: 首页 > news >正文

力扣刷题第二十七天--二叉树

前言

题目大同小异,按要求来即可。

内容

一、二叉树的右视图

199.二叉树的右视图

给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。

广度优先搜索

取每层最后一个元素,放入结果集

func rightSideView(root *TreeNode) []int {var res []intif root==nil{return res}queue:=list.New()queue.PushBack(root)for queue.Len()>0{length:=queue.Len()for i:=0;i<length;i++{node:=queue.Remove(queue.Front()).(*TreeNode)if node.Left!=nil{queue.PushBack(node.Left)}if node.Right!=nil{queue.PushBack(node.Right)}if i==length-1{res=append(res,node.Val)}}}return res
}
深度优先搜索
func rightSideView(root *TreeNode)(ans []int){var dfs func(*TreeNode,int)dfs=func(node *TreeNode,depth int){if node==nil{return }if depth==len(ans){ans=append(ans,node.Val)}dfs(node.Right,depth+1)dfs(node.Left,depth+1)}dfs(root,0)return
}
 二、二叉树的层平均数

637.二叉树的层平均数

给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 10-5 以内的答案可以被接受。

广度优先搜索
func averageOfLevels(root *TreeNode) []float64 {var res []float64curLevel:=[]*TreeNode{root}for len(curLevel)>0{sum:=0nextLevel:=[]*TreeNode{}for _,node:=range curLevel{sum+=node.Valif node.Left!=nil{nextLevel=append(nextLevel,node.Left)}if node.Right!=nil{nextLevel=append(nextLevel,node.Right)}}res=append(res,float64(sum)/float64(len(curLevel)))curLevel=nextLevel}return  res
}
三、N叉树的层序遍历 

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

树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。

广度优先搜素

一个结点有多个孩子,别忘了root为空

/*** Definition for a Node.* type Node struct {*     Val int*     Children []*Node* }*/func levelOrder(root *Node) [][]int {var res [][]intif root==nil{return res}curLevel:=[]*Node{root}for len(curLevel)>0{level:=[]int{}temp:=curLevelcurLevel=nilfor _,node:=range temp{level=append(level,node.Val)curLevel=append(curLevel,node.Children...)}//node.Children... 是一个可变参数,可以接收任意数量的子节点,并将它们存储在一个列表中。res=append(res,level)}return res
}

最后

平静,保持calm。脑子不太清醒,语言能力有点下降。。。好好休息!

相关文章:

力扣刷题第二十七天--二叉树

前言 题目大同小异&#xff0c;按要求来即可。 内容 一、二叉树的右视图 199.二叉树的右视图 给定一个二叉树的 根节点 root&#xff0c;想象自己站在它的右侧&#xff0c;按照从顶部到底部的顺序&#xff0c;返回从右侧所能看到的节点值。 广度优先搜索 取每层最后一个…...

一个快递包裹的跨国之旅

事情要从今年三月份说起&#xff0c;一位爱尔兰的同事在6月份结婚&#xff0c;团队同事准备了中国风的丝绸画轴、领带、丝巾作为礼物。3月份开始邮寄&#xff0c;4月初爱尔兰方面收件&#xff0c;5月份因为文件不足、不完整、不正确等原因被取消进口&#xff0c;7月份退回到大连…...

qsort函数使用方法总结

目录 一、qsort函数原型 二、compar参数 三、各种类型的qsort排序 1. int 数组排序 2. 结构体排序 3. 字符串指针数组排序 4. 字符串二维数组排序 四、回调函数 1. 什么是回调函数 2. 为什么要用回调函数&#xff1f; 3. 怎么使用回调函数&#xff1f; 4.下面是…...

机器学习介绍与分类

随着科学技术的不断发展&#xff0c;机器学习作为人工智能领域的重要分支&#xff0c;正逐渐引起广泛的关注和应用。本文将介绍机器学习的基本概念、原理和分类方法&#xff0c;帮助读者更好地理解和应用机器学习技术。 一、机器学习的基本概念 机器学习是一种通过从数据中学…...

linux控制台命令

进入root sudo su root 浏览当前文件夹列表 ll ls 查看文件 vim test.txt :q 退出查看模式 上传 sudo rz rz 覆盖上传 rz -y 修改文件名&#xff1a; mv 旧文件名 新文件名 修改文件权限 sudo chmod ar xxx.txt sudo chmod 777 test.txt 7 4 2 1 读写运行权限…...

快时尚品牌Halara登上TikTok美国小店榜Top 5,运动健身风靡TikTok

TikTok Shop美国电商数据周榜&#xff08;11/06-12&#xff09;已出&#xff0c;具体信息如下&#xff1a; 上周总GMV达到5850万美元&#xff0c;日均出单840万美元&#xff1b;单日出单最高达2110万美元&#xff0c;是当前美国单日最高销售额&#xff1b; 截至11月12日&…...

Docker 安装 Oracle Database 23c

目录 访问 Oracle 官方网站 使用 Docker 运行 Oracle Database 23c 免费容器映像 创建并运行 Oracle Database 23c 容器 查看已下载的镜像 列出正在运行的容器 进入容器 sqlplus 命令 访问 Oracle 官方网站 Database Software Downloads | Oracle 中国 使用 Docker 运行…...

什么是美国服务器,有哪些优势,适用于什么场景?

​  在互联网发展的过程中&#xff0c;服务器扮演着至关重要的角色。而美国作为全球信息技术的中心&#xff0c;其服务器在全球范围内受到广泛关注。  美国服务器是指在美国本土机房搭建并运行的服务器。其拥有带宽大、优质硬件、售后运维好、位置优越、数据安全性高以及免备…...

TeXLive 2023安装教程

TeXLive 2023安装教程 本文介绍最新TeX发行版——TeXLive 2023的安装步骤。如果你想用LaTeX进行写作&#xff0c;那么需要搭建LaTeX环境&#xff1a;可以选择下面两种方案之一进行安装&#xff1a;(1)TeXLive 2023TeXStudio或者(2)TeXLive 2023WinEdt 11。其中TeXLive 2023是由…...

uniapp中swiper 轮播带左右箭头,点击切换轮播效果demo(整理)

可以点击箭头左右切换-进行轮播 <template><view class"swiper-container"><swiper class"swiper" :current"currentIndex" :autoplay"true" interval"9000" circular indicator-dotschange"handleSw…...

网络连接Android设备

参考&#xff1a;https://blog.csdn.net/qq_37858386/article/details/123755700 二、网络adb调试开启步骤 1、把Android平板或者手机WiFi连接到跟PC机子同一个网段的网络&#xff0c;在设置-系统-关于-状态 下面查看设备IP,然后查看PC是否可以ping通手机的设备的IP。 2、先…...

Redis(位图Bitmap和位域Bitfield)

位图&#xff1a; 位图是字符串类型的扩展。 Redis中的位图是一种特殊的数据结构&#xff0c;用于表示一系列位的集合。它可以存储大量的布尔值数据&#xff0c;每个位代表一个布尔值&#xff08;0或1&#xff09;&#xff0c;并且可以对这些位进行各种位运算操作。位图通常用…...

【ArcGIS】批量对栅格图像按要素掩膜提取

要把一张大的栅格图裁成分省或者分县市的栅格集&#xff0c;一般是用ArcGIS里的按掩膜提取。 但是有的时候所要求的栅格集量非常大&#xff0c;所以用代码来做批量掩膜&#xff08;按字段&#xff09;会非常方便。 import arcpy , shutil , os from arcpy import env from ar…...

二进制安装minio 并实现主从同步

二进制安装minio 并实现主从同步 一、安装部署minio1.1、创建minio目录并下载minio1.2、授予执行权限1.3、创建存储目录和日志目录1.4、在目录下创建一个启动脚本1.5、设置minio开机启动 二、minio主从配置2.1、从服务器安装过程同《一》2.2、从服务器下载mc2.3、配置同步2.4、…...

React中封装echarts图表组件以及自适应窗口变化

文章目录 前言环境代码接口使用效果后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;react.js &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错误&#xff0c;…...

鸿蒙:使用Stack、ContentTable、Flex等组件和布局实现一个显示界面

效果展示 一.概述 跟随官网继续HarmonyOS学习 本篇博文实现一个食物详情页的开发Demo 通过这个开发过程学习如何使用容器组件Stack、Flex和基本组件Image、Text&#xff0c;构建用户自定义组件&#xff0c;完成图文并茂的食物介绍 二.构建Stack布局 1.食物名称 创建Stack…...

3.生成验证码 + 开发登录、退出功能 + 显示登录信息

目录 1.生成验证码 2.开发登录、退出功能 2.1 开发数据访问层 2.2 开发业务层:实现登录功能...

基于龙格-库塔算法优化概率神经网络PNN的分类预测 - 附代码

基于龙格-库塔算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于龙格-库塔算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于龙格-库塔优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对P…...

2022最新版-李宏毅机器学习深度学习课程-P51 BERT的各种变体

之前讲的是如何进行fine-tune&#xff0c;现在讲解如何进行pre-train&#xff0c;如何得到一个pre train好的模型。 CoVe 其实最早的跟预训练有关的模型&#xff0c;应该是CoVe&#xff0c;是一个基于翻译任务的一个模型&#xff0c;其用encoder的模块做预训练。 但是CoVe需要…...

JavaFX中Application、Stage、Scene和Parent的区别

在JavaFX中&#xff0c;Application、Stage、Scene和Parent是用于构建图形用户界面&#xff08;GUI&#xff09;的关键组件&#xff0c;它们各自有不同的作用和责任。以下是它们之间的主要区别&#xff1a; 1、Application&#xff08;应用程序&#xff09; Application是Java…...

基于Datasette与ChatGPT插件实现自然语言数据查询

1. 项目概述&#xff1a;当数据API遇见智能对话 如果你和我一样&#xff0c;既是一个数据爱好者&#xff0c;又对AI应用开发充满好奇&#xff0c;那么最近在GitHub上看到的一个项目绝对会让你眼前一亮。这个项目就是 simonw/datasette-chatgpt-plugin 。简单来说&#xff0c…...

CANN驱动获取卡电子标签API

dcmi_get_card_elabel_v2 【免费下载链接】driver 本项目是CANN提供的驱动模块&#xff0c;实现基础驱动和资源管理及调度等功能&#xff0c;使能昇腾芯片。 项目地址: https://gitcode.com/cann/driver 函数原型 int dcmi_get_card_elabel_v2(int card_id, struct dcm…...

Git Flow 工作流:团队协作最佳实践

Git Flow 工作流&#xff1a;团队协作最佳实践 核心概念 Git Flow 是一种流行的 Git 工作流模式&#xff0c;定义了一套标准化的分支管理策略。合理使用 Git Flow 可以提高团队协作效率&#xff0c;确保代码质量。 Git Flow 分支结构 main&#xff1a;主分支&#xff0c;包含生…...

使用不同模型相同提示词写一段systemverilog代码,deepseek太让人惊喜!

熟悉systemverilog的朋友应该都知道fork join_any disable有一个小陷阱&#xff0c;就是可能会误kill其他进程&#xff0c;所以需要一个guard fork。突然奇想&#xff0c;看看哪个大模型可以不经过提醒(这个很重要&#xff0c;因为我们大概率不会把这个加入到提示词&#xff01…...

【太奶学IT】一文搞懂0R电阻的10种硬核用法,90%的硬件工程师都用错了

文章目录0R电阻的认知误区&#xff0c;很多人从入门就错了0R电阻≠导线&#xff0c;两者存在本质差异0R电阻的电气参数&#xff0c;你从未关注过的细节0R电阻的基础通用用法&#xff0c;硬件工程师每天都在用电路调试与兼容设计&#xff0c;0R电阻的本职工作单点接地与噪声隔离…...

Activity切换监听(系统级APP)

系统级APP<manifestxmlns:android"http://schemas.android.com/apk/res/android"package"com.xxx.xxx"android:sharedUserId"android.uid.system">方式一&#xff1a;TaskStackListener 封装类import android.app.ActivityManager; import…...

从Swagger到Knife4j:一个老项目的平滑升级与避坑全记录(Spring Boot 2.1.4实战)

从Swagger到Knife4j&#xff1a;一个老项目的平滑升级与避坑全记录&#xff08;Spring Boot 2.1.4实战&#xff09; 当维护一个使用Spring Boot 2.1.4和Springfox 2.9.2的老项目时&#xff0c;开发团队常常面临接口文档工具过时的问题。传统Swagger UI的界面陈旧、功能单一&am…...

AI系统规范过拟合:多目标优化中的性能权衡与防范策略

1. 项目概述&#xff1a;当AI系统“偏科”时&#xff0c;我们该如何应对&#xff1f;在AI系统开发的日常工作中&#xff0c;我们常常会遇到一个令人头疼的“偏科”现象&#xff1a;为了让模型在某个特定指标上表现优异&#xff0c;我们投入了大量精力进行优化&#xff0c;结果却…...

解锁车辆新姿势:从PEPS解锁看AUTOSAR局部网络管理(Partial NM)如何省电

解锁车辆新姿势&#xff1a;从PEPS解锁看AUTOSAR局部网络管理如何省电 当车主在停车场按下智能钥匙的解锁按钮时&#xff0c;车辆不会像传统机械钥匙那样全车通电——只有门锁控制器和车身控制模块&#xff08;BCM&#xff09;被悄然唤醒&#xff0c;而仪表盘、中控屏等系统仍在…...

告别手动拼接:用ESP-IDF内置的cJSON库,5分钟搞定ESP32与服务器的JSON通信

ESP32与服务器JSON通信实战&#xff1a;5分钟掌握cJSON高效用法 在物联网开发中&#xff0c;JSON作为轻量级数据交换格式&#xff0c;几乎成为设备与服务器通信的标准协议。ESP32开发者常面临一个现实痛点&#xff1a;如何快速构建和解析JSON数据包&#xff1f;传统的手动拼接…...