每日两题 / 226. 翻转二叉树 98. 验证二叉搜索树(LeetCode热题100)

226. 翻转二叉树 - 力扣(LeetCode)
image.png

以后续遍历的方式交换当前节点的左右指针

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:void dfs(TreeNode *cur){if (cur == nullptr) return;dfs(cur->left);dfs(cur->right);swap(cur->left, cur->right);}TreeNode* invertTree(TreeNode* root) {dfs(root);return root;}
};

98. 验证二叉搜索树 - 力扣(LeetCode)
image.png
中序遍历得到的序列有序
或者当实现函数dfs(TreeNode *cur, long long l, long long r)
保证当前节点的值在[l, r]区间内即可,每次dfs都需要用当前节点的值更新区间

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:bool dfs(TreeNode *cur, long long l, long long r) {if (cur == nullptr) return true;if (cur->val >= r || cur->val <= l) return false;return dfs(cur->left, l, cur->val) && dfs(cur->right, cur->val, r);}bool isValidBST(TreeNode* root) {return dfs(root, LONG_MIN, LONG_MAX);}
};

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

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

相关文章

机器学习-12-sklearn案例03-flask对外提供服务

整体思路 训练一个模型&#xff0c;把模型保存 写一个基于flask的web服务&#xff0c;在web运行时加载模型&#xff0c;并在对应的接口调用模型进行预测并返回 使用curl进行测试&#xff0c;测试通过 再创建一个html页面&#xff0c;接受参数输入&#xff0c;并返回。 目录结…

Java使用equals和==的区别

对于在范围 -128 到 127 之间的数值&#xff0c;Java 会使用缓存的 Integer 对象。因此&#xff0c;这些数值的 Integer 对象可以使用 进行比较。 对于不在这个范围的数值&#xff0c;Java 每次可能创建一个新的 Integer 对象。这样&#xff0c;即使两个 Integer 对象代表相同…

CSS悬浮动画

<button class"btn">悬浮动画</button>.btn {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);padding: 10px 20px;width: 200px;height: 50px;background-color: transparent;border-radius: 5px;border: 2px solid powderblu…

C++继承深入解析

目录标题 1. 继承的基本概念1.1 为什么使用继承1.2 继承的语法 2. 继承的类型2.1 公共继承&#xff08;Public Inheritance&#xff09;公共继承的特性公共继承的语法公共继承的实际应用 2.2 保护继承&#xff08;Protected Inheritance&#xff09;保护继承的特性保护继承的语…

R2S+ZeroTier+Trilium

软路由使用ZeroTier搭建远程笔记 软路由使用ZeroTier搭建远程笔记 环境部署 安装ZeroTier安装trilium 环境 软路由硬件&#xff1a;友善 Nanopo R2S软路由系统&#xff1a;OpenWrt&#xff0c;使用第三方固件nanopi-openwrt。内网穿透&#xff1a;ZeroTier。远程笔记&…

银河麒麟操作系统 v10 离线安装 Docker v20.10.9

1查看系统版本 [rootweb-0001 ~]# cat /etc/os-release NAME"Kylin Linux Advanced Server" VERSION"V10 (Tercel)" ID"kylin" VERSION_ID"V10" PRETTY_NAME"Kylin Linux Advanced Server V10 (Tercel)" ANSI_COLOR"…

pyqt动画效果放大与缩小

pyqt动画效果放大与缩小 QPropertyAnimation介绍放大与缩小效果代码 QPropertyAnimation介绍 QPropertyAnimation 是 PyQt中的一个类&#xff0c;它用于对 Qt 对象的属性进行动画处理。通过使用 QPropertyAnimation&#xff0c;你可以平滑地改变一个对象的属性值&#xff0c;例…

服务器2080ti驱动的卸载与安装

服务器2080ti驱动的卸载与安装 前言1、下载驱动2、驱动卸载与安装2.1 卸载原来驱动2.2 安装新驱动 3、查看安装情况 前言 安装transformers库&#xff0c;运行bert模型时出错&#xff0c;显示torch版本太低&#xff0c;要2.0以上的&#xff0c;所以更新显卡驱动&#xff0c;重…

基于vgg16和efficientnet卷积神经网络的天气识别系统(pytorch框架)全网首发【图像识别-天气分类】

一个能够从给定的环境图像中自动识别并分类天气&#xff08;如晴天、多云、雨天、雪天闪电等&#xff09;的系统。 技术栈&#xff1a; 深度学习框架&#xff1a;PyTorch基础模型&#xff1a;VGG16与EfficientNet任务类型&#xff1a;计算机视觉中的图像分类 模型选择 VGG16 …

1.基于python的单细胞数据预处理-归一化

目录 归一化的引入移位对数皮尔森近似残差两个归一化方法的总结 参考&#xff1a; [1] https://github.com/Starlitnightly/single_cell_tutorial [2] https://github.com/theislab/single-cell-best-practices 归一化的引入 在质量控制中&#xff0c;已经从数据集删除了低质…

【网络安全】一次sql注入问题的处理

目录 问题 10.60.100.194&#xff0c;修改之前 修改方案 问题解决 测试过程 问题思考与总结 问题 一次sql注入问题的筛查报告&#xff0c;主要是sql注入的问题资源-CSDN文库 doc-new\20-设计文档\34-Mesh设备管理\100-网络安全 10.60.100.194&#xff0c;修改之前 修改…

Multitouch for Mac:手势自定义,提升工作效率

Multitouch for Mac作为一款触控板手势增强软件&#xff0c;其核心功能在于手势的自定义和与Mac系统的深度整合。通过Multitouch&#xff0c;用户可以轻松设置各种手势&#xff0c;如三指轻点、四指左右滑动等&#xff0c;来执行常见的任务&#xff0c;如打开应用、切换窗口、滚…

ansible部署lamp架构

搭建参考&#xff1a;ansible批量运维管理-CSDN博客 定义ansible主机清单 [rootansible-server ~]# vim /etc/hosts 192.168.200.129 host01 192.168.200.130 host02 [rootansible-server ~]# vim /etc/ansible/hosts [webserver] host01 host02 在ansible端编写index.html…

rk3588 安卓13 暴露相机开关接口

以前不知道有个系统属性可以做&#xff0c;后面的代码我几乎都用系统属性来写&#xff0c;比写个额外的广播接口方便多了。 实现一个相机的开关接口给上层调用&#xff0c;也就是打开后&#xff0c;上层无法再调用相机&#xff0c;关闭后可以正常打开&#xff0c;无需重启&…

为什么Redis6.0引入了多线程

Redis 6.0引入了多线程&#xff0c;主要原因有以下几点&#xff1a; 提高网络I/O的吞吐量&#xff1a;多线程可以更有效地处理大量的并发连接和请求&#xff0c;特别是在多核心服务器上。通过使用多线程来处理读写网络套接字&#xff0c;Redis能够更充分地利用系统资源&#x…

AMQP实战

AMQP AMQP是Advanced Message Queuing Protocol的缩写&#xff0c;意为高级消息队列协议。它是一种应用层协议&#xff0c;用于在分布式系统中进行消息通信。AMQP提供了可靠、安全、高效的消息传递机制&#xff0c;可以支持大规模的消息传递场景。 AMQP的主要特点包括以下几点…

DRF渲染之异常处理

异常处理 【1 】引言 Django REST Framework 这个就是我们常常说的DRF APIView的dispatch方法&#xff1a; 当请求到达视图时&#xff0c;DRF 的 APIView 类会调用 dispatch 方法来处理请求。在 dispatch 方法中&#xff0c;有一个关键的步骤是处理异常。如果在视图类的方法…

加速vivado编译工程

系统环境&#xff1a;windows11IDE环境&#xff1a;vivado2023.2工程&#xff1a;vivado自带的example project&#xff08;wave_gen&#xff09; Vivado支持多线程&#xff0c;可进一步缩短编译时间&#xff0c;这需要通过如下的Tcl脚本进行设置。综合阶段&#xff0c;Vivado可…

东软集团:用软件、大模型、生态领航智能汽车软件新纪元

“ 这是一次里程碑式的重大升级。 ” 整理 | 云舒 编辑 | 小白 出品&#xff5c;极新 在“新时代 新汽车”2024北京车展上&#xff0c;法拉利、保时捷、宾利、奔驰、宝马、奥迪、路虎、本田、尼桑、铃木以及极氪、零跑、赛力斯、AION埃安等都是东软的伙伴&#xff0c;当然还…

读天才与算法:人脑与AI的数学思维笔记24_预测性文本生成器

1. 起源 1.1. 人类讲故事可能起源于“假如……”这种问答结构 1.2. 讲故事是人类做安全试验的一种方式 1.2.1. 如果你问一个人“假如……”&#xff0c;其实是在探索你的行为对他可能带来的影响 1.3. 最早出现的故事极有可能就源自我们对在周遭混乱的环境中寻找某种秩序的渴…