⭐北邮复试刷题LCR 052. 递增顺序搜索树__DFS (力扣119经典题变种挑战)

LCR 052. 递增顺序搜索树

给你一棵二叉搜索树,请 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。

示例 1:
输入:root = [5,3,6,2,4,null,8,1,null,null,null,7,9]
输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]

示例 2:
输入:root = [5,1,7]
输出:[1,null,5,null,7]

提示:
树中节点数的取值范围是 [1, 100]
0 <= Node.val <= 1000

题解:

本题对所给二叉树中序遍历即可,即按照左根右,当访问根时,创建节点即可;
注意因为Java中创建对象和创建变量不同,创建同样名字的变量会导致上次创建的变量没有东西做依准故找不到,而创建对象会分配地址因此即使创建同样名字的对象也可通过地址找到;

代码:

/**
 * 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;
 *     }
 * }
 */
class Solution {
    TreeNode res = null;
    TreeNode index = null;

    public TreeNode increasingBST(TreeNode root) {
        dfs(root);
        return res;
    }

    public void dfs(TreeNode node){
        if(node.left != null)
            dfs(node.left);
        if(res == null){
            res = new TreeNode();
            res.val = node.val;
            index = res;
        }
        else{
            TreeNode temp = new TreeNode();
            temp.val = node.val;
            index.right = temp;
            index = index.right;
        }
        if(node.right != null)
            dfs(node.right);
    }
}

结果:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

零基础学习8051单片机(十六)

继续学习8051单片机&#xff0c;本次通过观看视频在此学习8051单片机的中断系统 要掌握单片机中断系统的硬件结构和工作原理 掌握&#xff1a;中断系统的初始化编程以及中断服务子程序设计。 一、中断的基本过程图&#xff1a; 中断的响应和处理过程&#xff1a; 当中断提出…

Redis篇----第十三篇

系列文章目录 文章目录 系列文章目录前言一、假如 Redis 里面有 1 亿个 key,其中有 10w 个 key是以某个固定的已知的前缀开头的,如果将它们全部找出来?二、如果有大量的 key 需要设置同一时间过期,一般需要注意什么?三、使用过 Redis 做异步队列么,你是怎么用的?四、使用…

Apache Doris 发展历程、技术特性及云原生时代的未来规划

文章目录 作者介绍 Apache Doris特性极简结构高效自运维高并发场景支持MPP 执行引擎明细与聚合模型的统一便捷数据接入 Apache Doris 极速 1.0 时代极速 关于 Apache Doris 开源社区基于云原生向量数据库 Milvus 的云平台设计实践作者介绍图书推荐 本文节选自《基础软件之路&am…

第六篇【传奇开心果系列】Python文本和语音相互转换库技术点案例示例:深度解读Kaldi库个性化定制语音搜索引擎

传奇开心果短博文系列 系列短博文目录Python文本和语音相互转换库技术点案例示例系列 短博文目录前言一、雏形示例代码二、扩展思路介绍三、数据准备示例代码四、特征提取示例代码五、声学模型训练示例代码六、语言模型训练示例代码七、解码示例代码八、评估和调优示例代码九、…

LeetCode | 寻找两个正序数组的中位数 Python C语言

Problem: 4. 寻找两个正序数组的中位数 文章目录 思路解题方法Code结果结果一些思考 思路 先合并&#xff0c;后排序&#xff0c;最后找中间轴。 解题方法 由解题思路可知 Code 这是python3的代码。 class Solution(object):def findMedianSortedArrays(self, nums1, num…

分享Video.js观看Web视频流

界面效果 HTML结构 <div class"homePopup" ><div class"search_box animate__animated animate__fadeInDown" style"display: none;"><div class"van-search" style"background: rgba(0, 0, 0, 0);">&…

【云原生】Docker consul的容器服务更新与发现

目录 什么是服务注册与发现 什么是consul consul提供的一些关键特性&#xff1a; consul 部署 consul服务器 1. 建立 Consul 服务 设置代理&#xff0c;在后台启动 consul 服务端 2. 查看集群信息 查看members状态 查看集群状态 3. 通过 http api 获取集群信息 regi…

SpringBoot指定外部环境配置

nohup java -Xms256m -Xmx512m -Dfile.encodingUTF-8 -jar /usr/local/xxxx.jar --spring.profiles.activeprod > system.log 2>&1 & --spring.profiles.activeprod修改的是多环境配置中内部application.properties里的spring.profiles.active值 -Dspring.config…

新手初期交易是盈利的,等熟练了却开始亏损了?

许多个人投资者涌入市场&#xff0c;初衷是期望能实现暴利并创造奇迹。梦想是美好的&#xff0c;追求暴利也无可非议&#xff0c;但最担心的是一开始就设定了不切实际的目标。例如&#xff0c;他们可能认为&#xff0c;若一年内不能赚取五倍或十倍的收益&#xff0c;就等于失败…

【AI大语言模型】ChatGPT在地学、GIS、气象、农业、生态、环境等领域中的应用

以ChatGPT、LLaMA、Gemini、DALLE、Midjourney、Stable Diffusion、星火大模型、文心一言、千问为代表AI大语言模型带来了新一波人工智能浪潮&#xff0c;可以面向科研选题、思维导图、数据清洗、统计分析、高级编程、代码调试、算法学习、论文检索、写作、翻译、润色、文献辅助…

Android13 编译ninja failed with: exit status 137

描述 现象很奇怪&#xff0c;主机是ubuntu 18.04&#xff0c; 内存有32G&#xff0c;并且系统中有两份Android13代码&#xff0c; 有一份编译正常&#xff0c;另外一份编译不正常&#xff0c;一度以为是因为下载源码不齐全导致&#xff0c;后面仔细看日志&#xff0c;原来是内…

同步系统时间chrony

安装 yum install chrony 启动并启用chronyd服务&#xff1a; systemctl start chronyd systemctl enable chronyd 查看chrony的状态&#xff0c;确认是否已经与NTP服务器同步 chronyc tracking

ElasticSearch DSL查询、排序 、分页的原理及语法

1. DSL查询分类和基本语法 ElasticSearch提供了基于Json的DSL来定义查询&#xff0c;常见的查询类型包括&#xff1a; • 查询所有&#xff1a;查询出所有数据&#xff0c;一般测试用&#xff0c;一般不是查出所有&#xff0c;一次性查询20条。例如 match_all • 全文检索(ful…

RMAN备份与恢复

文章目录 一、RMAN介绍二、全量备份三、增量备份0级备份1级增量备份累积性差量备份总结 四、压缩备份压缩备份介绍压缩备份操作压缩备份优缺点 五、异常恢复1、恢复前的准备2、恢复数据库 六、RMAN相关参数 一、RMAN介绍 RMAN&#xff08;Recovery Manager&#xff09;是Oracl…

Oracle:一条SQL在Oracle中的执行过程流程

一条SQL在Oracle中执行过程流程如下图&#xff1a;

QT-Day1

思维导图 作业 自由发挥登录窗口的应用场景&#xff0c;实现一个登录窗口界面。 #include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {//窗口this->setWindowTitle("QQ");this->setWindowIcon(QIcon("D:\\study\\hqyj\\co…

【PX4-AutoPilot教程-TIPS】PX4控制无人机在Gazebo中飞行时由于视角跟随无人机在画面中心导致视角乱晃的解决方法

PX4控制无人机在Gazebo中飞行时由于视角跟随无人机在画面中心导致视角乱晃的解决方法 问题描述解决方法 问题描述 无人机在Gazebo中飞行时&#xff0c;无人机始终处于画面中央&#xff0c;会带着视角乱晃&#xff0c;在Gazebo中进行任何操作视角都无法固定。 观察Gazebo左侧Wo…

【JavaEE】_ajax构造HTTP请求

目录 1. ajax简述 2. ajax构造HTTP请求 2.1 jquery库的引入 2.2 ajax构造HTTP请求格式 3. ajax构造GET请求实例 4. ajax构造POST请求实例 本专栏关于form表单构造HTTP请求一文中已经提到&#xff1a;form表单构造法只支持GET和POST&#xff0c;且会触发页面跳转。 原文详…

线上线下同时开店管理混乱?EasyBoss ERP升级线下零售订单功能帮你轻松搞定

许多做东南亚本土电商的卖家&#xff0c;会将线下店铺作为业绩增长的一个重要渠道&#xff0c;但是在运营过程中会出现&#xff1a;需要使用多个系统、库存不同步、数据混乱等问题&#xff0c;为了帮助卖家解决这些问题&#xff0c;EasyBoss此前已开发线下零售订单功能&#xf…

【Linux】再谈进程地址空间

目录 一、引入 二、物理内存和外设空间的交互 三、解决页表过大问题 一、引入 我们在往期的博客中有讲解过进程地址空间&#xff1a;【Linux】进程地址空间 但是在上述博客中我们只是对进程地址空间的左边部分详细进行了讲解&#xff0c;下面我们就来谈谈右边的部分&#…
最新文章