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

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

前言

昨天看总决赛,差距太大,看的没意思,真的是一点变通没有啊。难受,没有写题的状态了。大概率是最后一次看比赛了,青春已复过,白日忽相催。召唤师要和生活对线了。英雄们的语音,台词,技能历历在目,再多不舍,也要说再见。Legends never die!调整状态,再出发!再高的山,再长的河,也会越过!

层序遍历的模板基本上就是这样,掌握好。

内容

一、二叉树的层序遍历

102.二叉树的层序遍历

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

本题为后端高频面试题,被收录于《热招技术岗上岸指南》

广度优先搜素

层序遍历方式就是图论中的广度优先遍历,只不过我们应用在二叉树上

/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*///用切片模拟队列
func levelOrder(root *TreeNode) [][]int {var  res [][]intif root==nil{return res}curLevel:=[]*TreeNode{root}// 存放当前层节点for len(curLevel)>0{nextLevel:=[]*TreeNode{}// 准备通过当前层生成下一层vals:=[]int{}for _,node:=range curLevel{vals=append(vals,node.Val)// 收集当前层的值if node.Left!=nil{ // 收集下一层的节点nextLevel=append(nextLevel,node.Left)}if node.Right!=nil{nextLevel=append(nextLevel,node.Right)}}res=append(res,vals)curLevel=nextLevel// 将下一层变成当前层}return res
}
二、 二叉树的层序遍历II

107.二叉树的层序遍历II

给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

广度优先搜素

上一题反转一下结果集即可

/*** Definition for a binary tree node.* type TreeNode struct {*     Val int*     Left *TreeNode*     Right *TreeNode* }*/
func levelOrderBottom(root *TreeNode) [][]int {var res [][]intif root==nil{return res}curLevel:=[]*TreeNode{root}for len(curLevel)>0{nextLevel:=[]*TreeNode{}vals:=[]int{}for _,node:=range curLevel{vals=append(vals,node.Val)if node.Left!=nil{nextLevel=append(nextLevel,node.Left)}if node.Right!=nil{nextLevel=append(nextLevel,node.Right)}}res=append(res,vals)curLevel=nextLevel}n:=len(res)for i:=0;i<n/2;i++{res[i],res[n-1-i]=res[n-1-i],res[i]}return res
}

最后

为什么有的人总能保持高energy?你却总是消耗energy,导致没有精力做重要的事。内心充盈,精力充沛,才能吸引,影响别人!保护好自己的energy!!!

http://www.lryc.cn/news/238340.html

相关文章:

  • 电脑显示msvcp140_1.dll丢失的5个常用解决方法,亲测可修复
  • hive sql 行列转换 开窗函数 炸裂函数
  • Continuity” of stochastic integral wrt Brownian motion
  • 设置 wsl 桥接模式
  • [uni-app] uni.showToast 一闪而过问题/设定时间无效/1秒即逝
  • 7、信息打点——资产泄露CMS识别Git监控SVNDS_Store备份
  • 【运维篇】5.6 Redis server 主从复制配置
  • Hive语法,函数--学习笔记
  • LeetCode热题100——动态规划
  • 初识树(c语言)
  • 听GPT 讲Rust源代码--src/librustdoc(2)
  • 多目标应用:基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度(MATLAB)
  • 泉盛UV-K5/K6全功能中文固件
  • 基于JPBC的无证书聚合签名方案实现
  • FreeRTOS内存管理分析
  • hashMap索引原理
  • qcow2、raw、vmdk等镜像格式工具
  • GaussDB新特性Ustore存储引擎介绍
  • 人工智能基础_机器学习046_OVR模型多分类器的使用_逻辑回归OVR建模与概率预测---人工智能工作笔记0086
  • 【LeetCode刷题-链表】--23.合并K个升序链表
  • 强化学习笔记
  • 经典双指针算法试题(一)
  • MATLAB | 绘图复刻(十三) | 带NaN图例的地图绘制
  • netty整合websocket(完美教程)
  • 选择PC示波器的10种理由!
  • 【pytorch深度学习 应用篇02】训练中loss图的解读,训练中的问题与经验汇总
  • uniapp 微信小程序如何实现多个item列表的分享
  • .NET 8 正式 GA 遥遥领先
  • 2216. 美化数组的最少删除数 --力扣 --JAVA
  • DDD 领域驱动设计