LeetCode第783题 - 二叉搜索树节点最小距离

题目

解答

方案一

class Solution {private List<Integer> values = new ArrayList<>();public void inorder(TreeNode node) {if (node == null) {return;}inorder(node.left);values.add(node.val);inorder(node.right);}public int minDiffInBST(TreeNode root) {inorder(root);int min = Integer.MAX_VALUE;for (int i = 1, length = values.size(); i < length; ++i) {min = Math.min(Math.abs(values.get(i) - values.get(i - 1)), min);}return min;}
}

方案二

class Solution {private int last = 0;private int min = Integer.MAX_VALUE;public void inorder(TreeNode node) {if (node == null) {return;}inorder(node.right);min = Math.min(Math.abs(last - node.val), min);last = node.val;inorder(node.left);}public int minDiffInBST(TreeNode root) {inorder(root);return min;}}

要点
二叉搜索树,左子节点的值小于父节点的值,右子节点的值大于父节点的值,因而按照中序遍历树时,可以得到升序的排序结果,此时再对相邻两个数值进行求差运算,即得到最小的差。

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

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

相关文章

AI 代码生成

1 csdnC知道 https://so.csdn.net/chat?from_spm1008.2611.3001.9686 2 百度搜索AI伙伴 https://chat.baidu.com/ 3 阿里通义千问 https://tongyi.aliyun.com/qianwen/?spm5176.28326591.0.0.2a8a6ee1TUqfmH //还有的小伙伴们留言,我来整理 //感谢大家的点赞&#xff0c;…

工业自动化中与多台PLC通讯的基本指南

与多台PLC进行通讯是工业自动化中常见的需求。通常&#xff0c;一台THM&#xff08;通常是触摸屏或人机界面&#xff09;会与多台PLC进行通讯&#xff0c;以实现数据交互和控制功能。以下是一个基本的步骤指南&#xff0c;用于实现1台THM与多台PLC的通讯&#xff1a; 确定通讯…

在本机搭建私有NuGet服务器

写在前面 有时我们不想对外公开源码&#xff0c;同时又想在VisualStudio中通过Nuget包管理器来统一管理这些内部动态库&#xff0c;这时就可以在本地搭建一个NuGet服务器。 操作步骤 1.下载BaGet 这是一个轻量级的NuGet服务器 2.部署BaGet 将下载好的release版本BaGet解…

docker搭建nginx的RTMP服务器的步骤

使用Docker 另一个选项是使用Docker容器运行Nginx和RTMP模块。Docker Hub上有一些预构建的镜像&#xff0c;这些镜像已经集成了Nginx和RTMP模块&#xff0c;可以直接使用&#xff0c;无需手动编译。 例如&#xff0c;使用一个预构建的Nginx-RTMP Docker镜像&#xff1a; doc…

docker- php7.4

安装 gd拓展 anzhuanga在Dockerfile里面安装php7.4的GD库 - 知乎 apt update apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-devdocker-php-source extractdocker-php-ext-configure gd \ --with-jpeg/usr/include \ --with-freetype/usr/include/docker-…

Java Path详解

Java Path详解 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将深入探讨Java中的Path&#xff0c;解析它的功能、用法以及在文件处理中的应用…

Linux系统管理和Shell脚本笔试题

1、写一个sed命令&#xff0c;修改/tmp/input.txt文件的内容&#xff0c;要求&#xff1a;(1) 删除所有空行&#xff1b;(2) 在非空行前面加一个"AAA"&#xff0c;在行尾加一个"BBB"&#xff0c;即将内容为11111的一行改为&#xff1a;AAA11111BBB #写入内…

Android 中的卡顿优化

常见的手机卡顿现象&#xff1a; 视频加载慢&#xff1b;画面卡顿、卡死、黑屏&#xff1b;声音卡顿、音画不同步&#xff1b;动画帧卡顿&#xff0c;交互响应慢&#xff1b;滑动不跟手&#xff1b;列表自动更、滚动不流畅&#xff1b;网络响应慢、数据和画面展示慢&#xff1…

【机器学习 深度学习】卷积神经网络简述

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;相对完整的机器学习基础教学&#xff01; ⭐特别提醒&#xff1a;针对机器学习&#xff0c;特别开始专栏&#xff1a;机器学习python实战…

算法:箱子之形摆放

一、算法描述及解析 要求将一批箱子按从上到下以‘之’字形的顺序摆放在宽度为 n 的空地上&#xff0c;输出箱子的摆放位置&#xff0c; 例如&#xff1a;箱子ABCDEFG&#xff0c;空地宽为3。 如输入&#xff1a; ABCDEFG 3 输出&#xff1a; AFG BE CD 注&#xff1a;最后一行…

uni-app 经验分享,从入门到离职(三)——关于 uni-app 生命周期快速了解上手

文章目录 &#x1f4cb;前言⏬关于专栏 &#x1f3af;什么是生命周期&#x1f9e9;应用生命周期&#x1f4cc; 关于 App.vue/App.uvue &#x1f9e9;页面生命周期&#x1f4cc;关于 onShow 与 onLoad 的区别 &#x1f4dd;最后 &#x1f4cb;前言 这篇文章是本专栏 uni-app 基…

轻松使用python照片太大,设置为宽21cm,300像素(成功)

在本篇博文中&#xff0c;我们将学习如何使用Python中的Pillow库来调整图片的尺寸&#xff0c;并且保持图片的长宽比例不变。这个功能在许多图像处理任务中非常有用&#xff0c;比如在网页设计、图像处理和打印等方面。 介绍 Python的Pillow库是一个功能强大的图像处理库&…

MacBook安装虚拟机Parallels Desktop

MacBook安装虚拟机Parallels Desktop 官方下载地址: https://www.parallels.cn/pd/general/ 介绍 Parallels Desktop 被称为 macOS 上最强大的虚拟机软件。可以在 Mac 下同时模拟运行 Win、Linux、Android 等多种操作系统及软件而不必重启电脑&#xff0c;并能在不同系统间随…

MySQL原理(一)架构组成之逻辑模块(2)缓存机制

前面提到了mysql的逻辑模块中包含Query Cache 。 一、查询缓存 1、作用 MySQL查询缓存即缓存查询数据的SQL文本及查询结果,用Key-Value的形式保存在服务器内存中。当查询命中缓存,MySQL会立刻返回结果,跳过了解析,优化和执行阶段。 2、查询缓存的命中条件 &#xff08;1&a…

canvas路径剪裁clip(图文示例)

查看专栏目录 canvas实例应用100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

(软件分享)Fotor - AI照片编辑器

【应用名称】&#xff1a;Fotor - AI照片编辑器 【适用平台】&#xff1a;#Android 【软件标签】&#xff1a;#Fotor 【应用版本】&#xff1a;7.5.0.2➡7.5.1.5 【应用大小】&#xff1a;225MB 【软件说明】&#xff1a;软件升级更新。Fotor 包含编辑照片所需的所有工具。用户…

踩坑系列——mysql数据库字段类型为tinyint输入字符串条件查询无效

背景 排查问题发现有个查询sql的条件传的字符串‘ENABLE’&#xff0c;而数据库这个字段类型是tinyint&#xff0c;值只有0和1&#xff0c;看查询结果过滤出的都是值为0的数据。按自己理解这个语句应该查不出数据&#xff0c;但是结果非预期 排查 问了下ChatGpt给的回答是这…

@ 代码随想录算法训练营第6周(C语言)|Day37(贪心)

代码随想录算法训练营第6周&#xff08;C语言&#xff09;|Day37&#xff08;贪心&#xff09; Day37、贪心&#xff08;包含题目 738.单调递增的数字 968.监控二叉树 &#xff09; 738.单调递增的数字 题目描述 给定一个非负整数 N&#xff0c;找出小于或等于 N 的最大的整…

CH395Q之CH395Q驱动库移植与驱动库分析(二)

本节主要介绍以下内容&#xff1a; 一、CH395Q驱动库移植 二、源码分析 一、CH395Q驱动库移植 驱动库移植主要有两个途径&#xff0c;一个是南京沁恒官方网址&#xff0c;一个是通过正点原子官方&#xff0c;原子官方对沁横官方提供的驱动库进行了完善与修改。自用的话推荐…

1个 THM 和多台 BSP 的通讯(以邦纳 BSP 系列 PLC 为例)

一&#xff0e;架构和接线如下图所示 二、建立连接 选择 PLC 的驱动&#xff0c;多台连接请勾选“次连接” “次连接总数”就是要连接的 PLC 台数。 设置触摸屏通讯参数&#xff1b;同时确保每台 PLC 的通讯参数与该设定相同&#xff08;但站号不能相同&#xff09;。 三、…