97. 递增顺序搜索树:

题目链接 :97. 递增顺序搜索树

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


思路:

1、非递归变换

(1) 先DFS到最左叶子节点

(2) 再将左子树元素倒序出队列入集合,再遍历右子树

(3) 将集合中存储的节点进行变换,左子树遍历过了所以置空,当前节点变为前一个节点的右子树


AC代码:

   /*** 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 {List<TreeNode> res=new ArrayList<>();public TreeNode increasingBST(TreeNode root) {Deque<TreeNode> d=new ArrayDeque<>();while(!d.isEmpty()||root!=null){//先DFS到最左叶子节点while(root!=null){d.add(root);root=root.left;}//再将左子树元素倒序出队列入集合root=d.pollLast();res.add(root);//向右遍历root=root.right;}//将集合中存储的节点进行变换,左子树遍历过了所以置空,当前节点变为前一个节点的右子树TreeNode dummyHead=new TreeNode(-1);TreeNode cur=dummyHead;for(TreeNode node:res){node.left=null;cur.right=node;cur=node;}return dummyHead.right;}
}

97. 递增顺序搜索树相关推荐

  1. LeetCode简单题之递增顺序搜索树

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

  2. LeetCode Algorithm 897. 递增顺序搜索树

    897. 递增顺序搜索树 Ideas 看到搜索二叉树就想到了它的中序遍历序列是有序的,所以干脆直接用中序遍历序列,把每一项的left结点都置为nullptr,right结点置为下一项就OK了. 需要注 ...

  3. leetcode 897. 递增顺序搜索树(中序遍历)

    给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点. 示例 1: 输入:root = [5,3,6,2 ...

  4. LeetCode 每日一题 2021-4-25 (递增顺序搜索树)

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

  5. LeetCode 897. 递增顺序搜索树

    897. 递增顺序搜索树 [递归]比较捞,目前只想到了把所有节点保存一遍再更改左右指针的指向. class Solution {List<TreeNode> list = new Arra ...

  6. LeetCode 897 递增顺序搜索树

    https://leetcode-cn.com/problems/increasing-order-search-tree/ 解决方案 Morris中序遍历 class Solution {publi ...

  7. 力扣——按递增顺序显示卡牌

    牌组中的每张卡牌都对应有一个唯一的整数.你可以按你想要的顺序对这套卡片进行排序. 最初,这些卡牌在牌组里是正面朝下的(即,未显示状态). 现在,重复执行以下步骤,直到显示所有卡牌为止: 从牌组顶部抽一 ...

  8. 897. 递增顺序查找树-未解决

    897. 递增顺序查找树 https://leetcode-cn.com/contest/weekly-contest-100/problems/increasing-order-search-tre ...

  9. leetcode950. 按递增顺序显示卡牌

    牌组中的每张卡牌都对应有一个唯一的整数.你可以按你想要的顺序对这套卡片进行排序. 最初,这些卡牌在牌组里是正面朝下的(即,未显示状态). 现在,重复执行以下步骤,直到显示所有卡牌为止: 从牌组顶部抽一 ...

最新文章

  1. 递归神经网络——就是解决AST这样的问题
  2. Mac 安装redis
  3. [SDOI 2010]外星千足虫
  4. java实现数组排序代码_Java使用选择排序法对数组排序实现代码
  5. MySQL SQL优化之覆盖索引
  6. 10-12Linux流编程的一些知识点
  7. mysql中文坑爹的东西
  8. 服务器打微软补丁后无法启动,关于打了最新微软补丁后,针式打印机突然不好打印的处理方法。...
  9. mysql dbutil_通过dbutil操作数据库
  10. Allegro 使用技巧
  11. 广数25i系统倒刀回刀m代码_广数系统指令
  12. 吴恩达机器学习教程中文笔记目录
  13. 制作世界人口地图json--10.4学习日记
  14. 牛客竞赛:第三届超越杯程序设计团体赛题解
  15. from PyQt6 import QtCore, QtGui, QtWidgets ImportError: DLL load failed while importing QtGui:
  16. python seaborn学习笔记
  17. rsync下行同步和inotify实时同步部署
  18. 最新干货get,手机相机项目的整体测试流程是怎样的?
  19. 使用自定义字体升级您的 SwiftUI 应用程序教程,如何在 SwiftUI 中添加自定义字体
  20. JSD-2204-Java语言基础-运算符-分支结构-Day03

热门文章

  1. 快手自动私信的实现步骤与部分代码
  2. oracle 数据库执行 alter table rename to 后表及索引的统计信息变化
  3. 多旋翼飞行器设计与控制(七)—— 传感器标定和测量模型
  4. 液体采样泵WKA1000升级品WKY1000
  5. [源码解析] PyTorch分布式优化器(1)----基石篇
  6. 一个程序员老总的年终总结2009版
  7. 人体一机竞技格斗机器人_工匠社发布首款“人机一体”消费级竞技格斗机器人 不服就干!...
  8. 学生管理系统软件实现与测试,学生信息管理系统实现
  9. 【论文阅读004】:V-Fuzz: Vulnerability Prediction-Assisted Evolutionary Fuzzing for Binary Programs
  10. U3D开发Space Invader中的一些细节