代码随想录算法训练营DAY15 | 二叉树 (2)

一、LeetCode 102 二叉树的层序遍历

题目链接:

102.二叉树的层序遍历icon-default.png?t=N7T8https://leetcode.cn/problems/binary-tree-level-order-traversal/

思路:利用队列的先进先出特性,在处理本层节点的同时将下层节点入队,每次处理一层的节点,即可实现层序遍历。

class Solution {public List<List<Integer>> levelOrder(TreeNode root) {Queue<TreeNode> queue = new LinkedList<>();List<List<Integer>> ans = new ArrayList<>();if(root == null){return ans;}queue.offer(root);while(!queue.isEmpty()){//本层节点数int size = queue.size();List<Integer> list = new ArrayList<>();//记录本层节点 并将下层节点入队for(int i = 0; i < size; i++){TreeNode temp = queue.poll();list.add(temp.val);if(temp.left != null){queue.offer(temp.left);}if(temp.right != null){queue.offer(temp.right);}}ans.add(new ArrayList(list));}return ans;}
}
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/

 二、LeetCode 226 翻转二叉树

题目链接:

226.翻转二叉树icon-default.png?t=N7T8https://leetcode.cn/problems/invert-binary-tree/

思路:利用二叉树递归实现前序遍历的思想,在访问每个节点时进行交换其左右子树的操作

class Solution {public TreeNode invertTree(TreeNode root) {if(root == null){return root;}//翻转左右子树 中TreeNode temp = root.left;root.left = root.right;root.right = temp;//前序递归遍历 左、右invertTree(root.left);invertTree(root.right);return root;}
}
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/

 三、LeetCode 101 对称二叉树

题目链接:

101.对称二叉树icon-default.png?t=N7T8https://leetcode.cn/problems/symmetric-tree/

思路:利用后序遍历思想,分别判断外层和里层节点的轴对称情况(左子树左右中、右子树右左中),并对各种空节点情况进行处理,从而判断整棵树的对称情况。

 

class Solution {public boolean isSymmetric(TreeNode root) {return judge(root.left,root.right);}public boolean judge(TreeNode left, TreeNode right){//处理空节点及镜像节点值不相等的情况if(left == null && right == null){return true;}else if(left == null && right != null){return false;}else if(left != null && right == null){return false;}else if(left.val != right.val){return false;}//分别判断外层和里层的对称情况boolean out_flag = judge(left.left, right.right);boolean in_flag = judge(left.right, right.left);//只能采用后序遍历,因为需要先判断外层和里层的轴对称情况return out_flag && in_flag;}
}
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/

四、今日小结

        今天的二叉树题目只掌握了递归解法,层序遍历相关题目还未刷,需要找时间补上ovo

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

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

相关文章

【力扣】盛最多水的容器,双指针法

盛最多水的容器原题地址 方法一&#xff1a;双指针 如果使用暴力枚举&#xff0c;时间复杂度为&#xff0c;效率太低&#xff0c;会超时。 考虑使用双指针&#xff0c;利用单调性求解。用left和right作为数组height的下标&#xff0c;分别初始化为0和size-1。考虑在区间[lef…

CTF-PWN-堆-【chunk extend/overlapping-2】(hack.lu ctf 2015 bookstore)

文章目录 hack.lu ctf 2015 bookstore检查IDA源码main函数edit_notedelete_notesubmit .fini_array段劫持(回到main函数的方法) 思路格式化字符串是啥呢0x开头或者没有0x开头的十六进制的字符串或字节的转换为整数构造格式化字符串的其他方法 exp 佛系getshell 常规getshell ha…

Qt博客目录

Qt安装配置教程windows版&#xff08;亲测可行&#xff09; 使用Qt创建项目 & Qt中输出内容到控制台 & 设置窗口大小和窗口标题 & Qt查看说明文档 Qt信号和槽机制&#xff08;什么是信号和槽&#xff0c;connect函数的形式&#xff0c;按钮的常用信号&#xff0c…

04 使用gRPC实现客户端和服务端通信

使用gRPC实现客户端和服务端通信 参考文档: 基于C#的GRPC 1 创建项目和文件夹 GrpcClientDemoGrpcServerDemoProtos解决方案和文件夹1.1 添加nuget依赖 客户端和服务器都要有依赖和gRPC_Objects文件夹 <ItemGroup><PackageReference Include"Google.Protobu…

python实现飞书群机器人消息通知(消息卡片)

python实现飞书群机器人消息通知 直接上代码 """ 飞书群机器人发送通知 """ import time import urllib3 import datetimeurllib3.disable_warnings()class FlybookRobotAlert():def __init__(self):self.webhook webhook_urlself.headers {…

java---查找算法(二分查找,插值查找,斐波那契[黄金分割查找] )-----详解 (ᕑᗢᓫ∗)˒

目录 一. 二分查找&#xff08;递归&#xff09;&#xff1a; 代码详解&#xff1a; 运行结果&#xff1a; 二分查找优化&#xff1a; 优化代码&#xff1a; 运行结果&#xff08;返回对应查找数字的下标集合&#xff09;&#xff1a; ​编辑 二分查找&#xff08;非递归…

神经网络的权重是什么?

请参考这个视频https://www.bilibili.com/video/BV18P4y1j7uH/?spm_id_from333.788&vd_source1a3cc412e515de9bdf104d2101ecc26a左边是拟合的函数&#xff0c;右边是均方和误差&#xff0c;也就是把左边的拟合函数隐射到了右边&#xff0c;右边是真实值与预测值之间的均方…

双5G工业路由器无缝链接物联网世界!

在现代工业领域&#xff0c;随着工业互联网的发展和智能化需求的提升&#xff0c;双5G工业路由器成为了实现工业互联网的关键利器。与传统的有线网络相比&#xff0c;双5G工业路由器具有更高的速度和更低的延迟&#xff0c;能够满足高密度设备连接和大流量数据传输的需求。尤其…

第3章 模板

学习目标 了解模板与模板引擎Jinja2&#xff0c;能够复述模板引擎和模板的作用 掌握模板变量的语法&#xff0c;能够在Jinja2模板中定义模板变量 掌握过滤器的使用&#xff0c;能够在Jinja2模板中使用过滤器过滤模板变量保存的数据 掌握选择结构的使用&#xff0c;能够在Jin…

1、卷积分类器

用 Kera 创建你的第一个计算机视觉模型。 数据集下载地址:链接:https://pan.quark.cn/s/f9a1428cf6e3 提取码:XJcv 文章目录 欢迎来到计算机视觉!简介卷积分类器训练分类器示例 - 训练一个卷积分类器步骤1 - 加载数据步骤2 - 定义预训练基步骤3 - 附加头步骤4 - 训练结论欢…

分享70个行业PPT,总有一款适合您

分享70个行业PPT&#xff0c;总有一款适合您 70个行业PPT下载链接&#xff1a;https://pan.baidu.com/s/1wGxmwmzssJud4ZQmI4IqFQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

vite项目配置根据不同的打包环境使用不同的请求路径VITE_BASE_URL,包括报错解决

vite环境配置可以看官方文档&#xff1a;环境变量和模式 | Vite 官方中文文档 创建环境配置文件 在项目根目录下面创建.env和.env.production文件&#xff0c;.env是开发环境使用的&#xff0c;.env.production是生产环境使用的。 .env文件&#xff1a; # 基本环境 VITE_APP…

PyTorch 2.2 中文官方教程(二)

在 YouTube 上介绍 PyTorch PyTorch 介绍 - YouTube 系列 原文&#xff1a;pytorch.org/tutorials/beginner/introyt.html 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 介绍 || 张量 || 自动微分 || 构建模型 || TensorBoard 支持 || 训练模型 || 模型理解 作者&a…

mysql order by 排序原理

sql语句按照指定的字段进行排序是查询数据时是一个很常见的操作。当涉及到大量数据时&#xff0c;对于 ORDER BY 操作&#xff0c;可以考虑为相应的列添加索引&#xff0c;如果不使用索引&#xff0c;mysql会使用filesort来进行排序。 filesort filesort虽然有file&#xff0…

拦截器配置,FeignClient根据业务规则实现微服务动态路由

文章目录 业务场景拦截器用法Open Feign介绍 业务场景 我们服务使用Spring Cloud微服务架构&#xff0c;使用Spring Cloud Gateway 作为网关&#xff0c;使用 Spring Cloud OpenFeign 作为服务间通信方式我们现在做的信控平台&#xff0c;主要功能之一就是对路口信号机进行管控…

数据结构中的时间复杂度和空间复杂度基础

目录 数据结构 数据结构中的基本名词 数据 数据对象 数据元素 数据项 数据类型 数据对象、数据元素和数据项之间的关系 数据结构及分类 逻辑结构 物理结构 算法 算法的特点 算法设计上的要求 算法效率的衡量 时间复杂度 大O渐进表示法 最坏情况和平均情况 常…

关于现有预报气象大模型的能力上限思考

从2022年开始&#xff0c;以华为pangu weather为代表的气象大模型及fuxi、fengwu等相继涌现&#xff0c;公开发表的文章里也展示了模型与ec预报性能的对比&#xff0c;并且这些大模型也公开了相应的代码或模型&#xff0c;便于人人都可测试使用&#xff08;如何在本地部署大模型…

R语言学习case10:ggplot基础画图Parallel Coordinate Plot 平行坐标图

step1: 导入ggplot2库文件 library(ggplot2)step2&#xff1a;带入自带的iris数据集 iris <- datasets::irisstep3&#xff1a;查看数据信息 dim(iris)维度为 [150,5] head(iris)查看数据前6行的信息 step4&#xff1a;利用ggplot工具包绘图 plot5 <- ggparcoord(…

Pandas数据预处理之数据标准化-提升机器学习模型性能的关键步骤【第64篇—python:数据预处理】

文章目录 Pandas数据预处理之数据标准化&#xff1a;提升机器学习模型性能的关键步骤1. 数据标准化的重要性2. 使用Pandas进行数据标准化2.1 导入必要的库2.2 读取数据2.3 数据标准化 3. 代码解析4. 进一步优化4.1 最小-最大缩放4.2 自定义标准化方法 5. 处理缺失值和异常值5.1…

HGAME 2024 WEEK 1 :web ezHTTP

题目&#xff1a; 看到这个就知道是文件头伪造 第一想法就是Referer伪造 所以伪造 Referer: vidar.club 然后构造伪造的Referer 然后提示通过那些东西访问页面&#xff0c;User-Agent: 是构造你浏览器访问信息的&#xff0c;所以复制右边那一串替代就好了 然后要求我们从本地…