(刷题笔记) Leetcode 897. 递增顺序查找树

【WorkBuddy专栏61】字节的AI打法为什么一直在变——WorkBuddy/CodeBuddy vs 字节Trae/TRAE Work/豆包全维度对比 阅读详情

题目

给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。

示例 :

输入:[5,3,6,2,4,null,8,1,null,null,null,7,9]

      5
     / \
    3    6
   / \    \
  2   4    8
 /        / \ 
1        7   9

输出:[1,null,2,null,3,null,4,null,5,null,6,null,7,null,8,null,9]

1
 \
  2
    \
     3
       \
        4
          \
           5
            \
             6
              \
               7
                \
                 8
                  \
                   9  

提示:

给定树中的结点数介于 1 和 100 之间。
每个结点都有一个从 0 到 1000 范围内的唯一整数值。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/increasing-order-search-tree

解题思路

这道题与面试题 17.12. BiNode是一模一样的。
不过隔了一段时间又换了一种说法之后,我就只记得我写过,但是不记得怎么写的,然后就顺着写了一个中序遍历,但是没办法返回到头结点,然后就回来看了一下这个答案。

代码(C++)

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    TreeNode* increasingBST(TreeNode* root) {

        stack<TreeNode*> st;

        TreeNode* temp=root;
        TreeNode* now=NULL;
       
        while(!st.empty()||temp!=NULL){

            while(temp){
                st.push(temp);
                temp=temp->right;
            }

            temp=st.top();
            st.pop();
           
            temp->right=now;
            now=temp;
            temp=temp->left;
            now->left=NULL;
            
        } 

        return now;

        
        
    }
};

递归

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    TreeNode* now=NULL;
    void dfs(TreeNode* root){

        if(root==NULL) return;
        dfs(root->right);
        root->right=now;
        now=root;
        dfs(root->left);
        root->left=NULL;
    }
    TreeNode* increasingBST(TreeNode* root) {

        dfs(root);
        return now;
        
    }
};
优化点列图(RMS半径)的操作数 阅读详情

相关推荐

java结合Ai

Spring AI 是 AI 工程的应用框架。其目标是将Spring生态系统的设计原则(如可移植性和模块化设计)应用于AI领域,并促进使用POJO作为应用程序的构建块到AI领域。特征跨 AI 提供商的可移植 API 支持,适用于聊天、文本到图像和嵌入模型。支持同步 API 和流 API 选项。还支持下拉以访问特定于模型的功能。聊天模型亚马逊基岩人类学Cohere的命令AI21 Labs的侏罗纪-2Meta 的 LLama亚马逊的泰坦人类学克劳德Azure 开放式 AI。

qq_67832732的博客 2848

每日题解:LeetCode 897. 递增顺序搜索树

题目地址 题目描述 给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u31xCcBU-1619365061635)(1)] 示例 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,

liuhao192的博客 214

Vue 10分钟入门VR全景显示 基于photo-sphere-viewer

文章目录前言一、引入photo-sphere-viewer?二、使用步骤1.引入库2.声明容器3.内容加载4.全部代码总结 前言 由于工作的需求,要实现全景图片的展示与预览,本来以为会是一个很难的内容,没想到使用现成的组件photo-sphere-viewer就可以轻松实现,上手只需要10分钟! 一、引入photo-sphere-viewer? 可以直接通过npm进行引入 npm install photo-sphere-viewer 二、使用步骤 1.引入库 photo-sphere-viewer

YIGE_MO的博客 5866

LeetCode —— 897. 递增顺序查找树(Python)

给你一个树,请你 按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 示例 : 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/increasing-order-search-tree 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 ———————— 解题思路:使用中序遍历获得递增序列,然后按顺序构建只有右子结点的树: # Definition for a binary tree

然后就去远行 344

ARM一致性总线CMN600AE

是基于Mesh拓扑结构,对外支持AMBA CHI/ACE-LITE等接口,内部改用路由结构转发数据,并提供硬件一致性和系统缓存,还支持多芯片互联。CMN600在T16FFC上可以做到2Ghz,另外AE版本增加了车规芯片的安全功能,总线内部采用EDC检查,接口采用的奇校验。CMN-600AE具有以下特点:该网络符合功能安全标准,例如ISO 26262(汽车电子领域的功能安全标准)或IEC 61508(工业自动化领域的功能安全标准)等。

weixin_50518899的博客 3503

华为OD机试真题 新系统【进制转换后自定义排序】

华为OD机试 新系统真题【进制转换后自定义排序】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【进制转换后自定义排序】多语言题解。

qq_45776114的博客 596

LeetCode,897. 递增顺序查找树(二叉搜索树)

给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 示例 : 输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 / / \ 1 7 9 输出:[1,nul...

AAS48的博客 524

量化交易 米筐 因子分组打分(成长因子)

分组动手练习 在米筐上因子数据没有处理,提供的很多因子没有默认分类,存在一些因子没有的情况,我们就选择一些常见的因子。 价值因子 质量因子 成长因子(历史名称) pe_ratio return_on_invested_capital in_revenue pcf_ratio du_return_on_equity inc_eps pb_ratio return_on_asset_net_profit inc_total_asset market_cap return_on_equ

廷益_飞鸟的博客 932

leetcode递增顺序查找树(897)

给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是 树的根,并且每个结点没有左子结点,只有一个右子结点。 address # Definition for a binary tree node. class TreeNode: def __init__(self, x): self.val = x self.left = None self.right = None class Solution: def inc.

you are sherlocked by me! 463

别再瞎改网络结构了!解决YOLO小目标检测痛点,我用这招把mAP提了15%

本文基于我7年工业PCB缺陷检测、无人机航拍、安防监控项目的一线落地经验,针对YOLO小目标检测最痛的「漏检率高、特征丢失、精度难提升」三大核心问题,拆解出。本文全程配套小目标特征丢失原理图、分块训练流程图、切图前后效果对比图、mAP提升柱状图、多方案性能对比表等可视化内容,从YOLO天生不擅长小目标的底层根源、方案核心原理、可直接复制的代码实现,到工业场景实测验证、新手必踩的10个坑位避坑指南,全链路讲透。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 387

13.0 针对跳转不存在Activity崩溃处理,改成弹Toast提示,去掉崩溃弹窗,避免app崩溃退出

在开发过程中,在app跳转到某个没注册的Acitivity时,往往会出现崩溃的场景,这样也不好,接下来就从framework中来拦截这个崩溃,改成toast提示,

安卓兼职framework和app工程师的博客 48

给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。

/** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ struct TreeNode* _increasingBST(struct TreeNode* root, struct TreeNode* pre){ if(!root){

眼泪划过的星空 332

【四足机器人项目实战】波士顿spot四足机器人机工程设计及实现分析

主要介绍了波士顿spot机器人的发展历史、四足机器人的硬件系统及电机执行器组成包括硬件系统、关节电机执行器,机载传感器机处理器及电气连接等。概述了四足机器人规划控制、感知、定位及局部地图的相关算法方向。

qq_35635374的博客 4997

LeetCode897:Increasing Order Search Tree 递增顺序查找树

LeetCode897:Increasing Order Search Tree 递增顺序查找树题目说明分析最终代码 题目说明 Given a tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root of the tree, and every node has no le...

坚果 433

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

cc++ leetcode 897. 递增顺序查找树

c/c++ leetcode 897. 递增顺序查找树 题目描述 897. 递增顺序查找树 难度简单92 给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 示例 : 输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 / / \ 1 7 9 输出:[1,nu

qq_45569601的博客 356

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

递增顺序查找树

递增顺序查找树(力扣:897) 给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。

卜大爷的博客 2万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Leetcode897 递增顺序查找树[Easy] -JAVA

题目传送门 Leetcode897 递增顺序查找树[Easy] -JAVA题目思路解法 题目 给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 示例 : 输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 / / \ 1 7 9 输出:[1,null,2,nu

小小柯 201

Leetcode 897. 递增顺序查找树

Leetcode 897. 递增顺序查找树 思路 先将中序遍历的结果放到一个数组里,然后新建一棵只有右子树的二叉树。 代码 TreeNode* increasingBST(TreeNode* root) { vector<int> nums; inOrder(root,nums); TreeNode* pre=new TreeNode(-1); TreeNode* res=pre; for(int i: nums){

Carmenatnju的博客 169

leetcode897:递增顺序查找树

本题考察对树的中序遍历和树的构建。

ch18328071580的博客 297

Leetcode 897.递增顺序查找树(Increasing Order Search Tree)

Leetcode 897.递增顺序查找树 1 题目描述(Leetcode题目链接)   给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 / / \ 1 7 9 输出:[1,null,2,null,3,nu

qq_39378221的博客 211

LeetCode JAVA解题---897. 递增顺序查找树

LeetCode 题库 全 JAVA 解题 994. 腐烂的橘子 原题回顾: 在给定的网格中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,任何与腐烂的橘子(在 4 个正方向上)相邻的新鲜橘子都会腐烂。 返回直到单元格中没有新鲜橘子为止所必须经过的最小分钟数。如果不可能,返回 -1。 来源:力扣(LeetCode) 链接:ht...

qq_28295947的博客 275

LeetCode897递增顺序查找树

递增顺序查找树>>> 方法1:中序遍历将数据保存到数组中,然后将数组中的元素进行重构成一颗右偏子树即可 //方法1: //中序遍历+构造新的数 //我们在树上进行中序遍历,就可以从小到大得到树上的节点 //我们把这些节点对应的值存放到数组中, public TreeNode increasingBST(TreeNode roo...

ZHOUJIAN_TANK的博客 203

leetcode 算法题897 (简单236) 递增顺序查找树

leetcode 算法题897 (简单236) 递增顺序查找树 题目介绍 给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 示例 输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ \ 2 4 8 &nbsp...

FYuu95100的博客 275

leetcode- 897 -递增顺序查找树 -java版

文章目录题目代码 题目 给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 示例 : 输入:[5,3,6,2,4,null,8,1,null,null,null,7,9] 5 / \ 3 6 / \ 2 4 8 / / \ 1 7 9 输出:[1,null,2,n...

lingle1的博客 456

leetcode 897.递增顺序查找树 Java

递增顺序查找树题目链接描述示例初始代码模板代码 题目链接 https://leetcode-cn.com/problems/increasing-order-search-tree/solution/di-zeng-shun-xu-cha-zhao-shu-by-leetcode/ 描述 给你一个树,请你 按中序遍历 重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。 提示: 给定树中的结点数介于 1 和 100 之间。 每个结点都有一个从 0 到 1000 范围内

博主是个二次元死肥宅~ 374

递增顺序查找树 【leetcode - 897 - 简单】

胡扯:之前吐槽的 leetcode 使用全局变量的问题,应该是我操作的问题。java还是可以使用全局变量的,只要 别在全局变量前面加上 static 就好了。从本题开始,坚持每道题都写一篇简短的文章。 原题位置 :https://leetcode-cn.com/problems/increasing-order-search-tree/ 思路: 1、首先把树进行 中序遍...

小道仙的后宫 451
上一篇: (OpenCV学习) FileStorage()——将Mat存储为txt
下一篇: (刷题笔记) Leetcode 690. 员工的重要性
Lucky&Happy
博客等级 码龄10年 1粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值