后继者00

news2024/10/6 16:21:29

题目链接

后继者

题目描述

注意点

  • 题目中的树是二叉搜索树
  • 节点p在二叉搜索树中一定存在

解答思路

  • 本题关键是找到值大于节点p的值的第一个节点,因为本题中的树是二叉搜索树,所以左子树的值始终小于根节点,右子树的值始终大于根节点
  • 访问到任意一个节点,当节点值不大于节点p的值,则该节点对应的子树都不可能是结果中的后继者,可以直接去该节点的右子树进行查找;当节点值大于节点p的值,则应该找到该节点对应的子树中的最小值(可能在左子树也可能是它自己),也就是值大于节点p的值的第一个节点

代码

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public TreeNode inorderSuccessor(TreeNode root, TreeNode p) {
        if (root == null) {
            return null;
        }
        if (root.val <= p.val) {
            return inorderSuccessor(root.right, p);
        }
        TreeNode res = inorderSuccessor(root.left, p);
        return res == null ? root : res;
    }
}

关键点

  • 找到树中大于节点p的值的第一个节点

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

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

相关文章

【画板案例-颜色 Objective-C语言】

一、接下来,我们来说这个颜色的问题, 1.设置这个颜色啊,那么,颜色,首先啊,就我们的示例程序而言,好,我们现在只要点击这个按钮, 就能够让某一条路径,也是达到不同的颜色, 我们可以让每一条路径,去设置颜色, 那么,这个颜色啊,首先,思路啊,大家先来分析一下, …

pytest中失败用例重跑

pip install pytest-rerunfailures 下载rerunfailures插件包 配置文件中加入命令 --reruns 次数 也可在命令行中pytest --rerun-failures2 可以在allure报告中看到重试效果

基于PID的直流电机自动控制系统的设计【MATLAB】

摘 要 本文在广泛查阅资料&#xff0c;了解直流电机特性的基础上&#xff0c;对直流电机的控制原理进行了的研究&#xff0c;设计了一款基于PID控制器的简单直流电机自动控制系统。 首先&#xff0c;分析了直流电机的应用背景和发展现状&#xff0c;对直流电机的工作原理和数学…

Linux系统之smem命令的基本使用

Linux系统之smem命令的基本使用 一、smem命令介绍二、smem命令的使用帮助2.1 smem命令的help帮助信息2.2 smem命令的语法解释 三、smem工具安装3.1 安装epel3.2 搜索smem包3.3 安装smem 四、smem命令的基本使用4.1 查看内存概览4.2 查看内存占用百分比4.3 查看系统内存使用情况…

FANUC机器人4种启动方式的区别

FANUC机器人4种启动方式的区别 1.初始化启动 执行初始化启动时,删除所有程序,所有设定返回标准值。 初始化启动完成时,自动执行控制启动。 说明: 执行初始化启动时,删除所有程序,所有设定返回标准值。初始化启动完成时,自动执行控制启动。执行初始化启动时,程序、设定等…

32+综述!百位大佬联袂解析“One Health”时代下新污染物对全球健康的影响

如果你关注环境健康&#xff0c;那么会发现以上研究发现层出不穷&#xff0c;新污染物正在“潜移默化”悄悄改变我们的个体健康和生存环境&#xff01; 新污染物是全球经济快速发展的“产物”。例如&#xff0c;微塑料作为一种经常出现的新污染物&#xff0c;可作为载体传播和…

Pikachu靶场--暴力破解

实验前的准备 问题解决 PHPStudy&#xff08;小皮&#xff09;V8.1安装后启动Apache报错AH00526: Syntax error 【数据库连接问题】【靶场访问错误】 抓不到本地靶场包的原因及解决方法_pakachu抓不到包 设置代理 BP添加和选择代理 火狐浏览器-->设置-->拓展-->搜索…

臻奶惠的行业优势与市场竞争力解析

臻奶惠在智能售货机领域深耕多年&#xff0c;其加盟合作模式在行业中展现出了多方面的优势。以下是对该公司智能售货机加盟优势的深入分析&#xff1a; 技术先进性&#xff1a; 臻奶惠智能售货机以高度自动化的运营模式著称&#xff0c;特别是在自动补货、远程监控和数据分析…

Git仓库中文件的状态

0 Preface/Foreword 1 文件状态 文件包含以下4个状态&#xff1a; untracked&#xff0c;未跟踪&#xff0c;表示该文件在文件夹中&#xff0c;但是没有加入到git 仓库中进行版本管控。可以通过git add命令将该文件增加到git 仓库中。从untracked变为staged。unmodified&…

夏日炎炎,护牙不闲——口腔问诊小程序开发助你笑口常开

近年来&#xff0c;“口呼吸”、“牙齿矫正”、“美牙贴片”等词越来越多的出现在大众的视野中&#xff0c;口腔健康成为了人们关注的新热点。但是市面上的口腔诊所数量众多又参差不齐&#xff0c;如何选择最合适的口腔诊所是人们面对的新问题。为了有效解决这一现状&#xff0…

Linux命令详解(1)

在Linux操作系统中&#xff0c;命令行界面&#xff08;CLI&#xff09;是一个强大的工具&#xff0c;它允许用户通过键入命令来与系统交互。无论是系统管理员还是普通用户&#xff0c;掌握一些基本的Linux命令都是非常重要的。在本文中&#xff0c;我们将探讨一些常用的Linux命…

OCP-042之:Oracle实例管理

2. Oracle实例管理 2.1 Instance管理 Oracle实例(instance)是一组Oracle后台进程和内存结构的集合。 后台进程主要包括SMON,PMON,DBWR,CKPT和LGWR等;内存结构包括数据库高速缓冲区、重做日志缓冲区、共享池、大池等组成系统全局区(SGA)的重要组件。实例主要实现对数据库的…

【论文速读】| 通过大语言模型从协议实现中推断状态机

本次分享论文&#xff1a;Inferring State Machine from the Protocol Implementation via Large Language Model 基本信息 原文作者&#xff1a;Haiyang Wei, Zhengjie Du, Haohui Huang, Yue Liu, Guang Cheng, Linzhang Wang, Bing Mao 作者单位&#xff1a;南京大学&#…

12V转5V3A固定输出电源转换芯片

AH8642A是一款高效的12V转5V固定输出电源转换芯片&#xff0c;适用于车载充电器、适配器以及电池充电器等应用场景。该芯片具有SOP-8封装&#xff0c;使得其具有易于安装和组装的特性&#xff0c;非常适合于生产厂家和消费者使用。 其主要特点包括&#xff1a; 1. 固定输出电压…

【Win】打造个性化的Windows锁屏:从移除小部件到隐藏锁屏

移除锁屏小部件 如果您是Windows 11用户并且安装了最新版本的Windows 11&#xff0c;您可能已经注意到锁屏上的小部件。如果您不希望Windows 11在锁屏上显示小部件&#xff0c;您可以禁用此功能。本文展示了如何在Windows 11中移除锁屏小部件。 要移除Windows 11的锁屏小部件&…

通过自定义线程池初步理解JAVA线程池

减少线程上下文切换 生产者提供的任务对象交给线程池&#xff0c;线程池没有线程的话就创建线程执行它。有线程但是数量不足就放入&#xff08;任务&#xff09;阻塞队列。 自定义线程池 组件&#xff1a; 线程池&#xff1a;存储可重用的线程&#xff08;相当于消费者&#x…

快速上手Selenium:环境搭建详解

一、下载安装python 安装Python是进入编程世界的第一步&#xff0c;下面将详细指导您如何在不同操作系统上安装Python&#xff0c;并确保安装成功后的环境配置。具体分析如下&#xff1a; 下载Python 选择版本&#xff1a;打开Python官网的下载页面&#xff0c;根据需求选择适…

Java 反射的基本概念及其在框架中的应用

Java反射&#xff08;Reflection&#xff09;是Java语言中的一种特性&#xff0c;它允许程序在运行时检查和操作类、接口、字段和方法。反射提供了一种机制&#xff0c;使得Java程序可以动态地加载类、创建对象、调用方法、访问和修改字段。反射是Java动态性的重要体现&#xf…

python __init__.py 文件案例练习

通过一些案例练习来更好地理解 __init__.py 的用法。我们将创建一个简单的 Python 包,并在 __init__.py 中实现不同的功能。 案例一:基本包结构 创建包目录结构: mypackage/__init__.pymodule1.pymodule2.py实现 module1.py 和 module2.py: # mypackage/module1.py def fu…

微服务开发与实战Day05 - 服务保护和分布式事务

一、服务保护和分布式事务 二、雪崩问题 微服务调用链路中某个服务故障&#xff0c;引起整个链路中的所有微服务都不可用&#xff0c;这就是雪崩。 1. 雪崩问题产生的原因是什么&#xff1f; 微服务相互调用&#xff0c;服务提供者出现故障或阻塞&#xff1b;服务调用者没有做…