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. PHP的转义函数 htmlspecialchars、strip_tags、addslashes解释
  2. 跟开发对接,要了解哪些数据库知识?
  3. Pwntools的context设置与shellcode
  4. [C# 网络编程系列]专题十二:实现一个简单的FTP服务器
  5. Hadoop配置项整理(hdfs-site.xml)
  6. Java API —— ArrayList类 Vector类 LinkList类
  7. VC实现将程序最小化到托盘
  8. 【项目篇- 封面后目录前的核心内容、优势展示部分如何打磨?(超全图文总结建议)】创新创业竞赛项目计划书、新苗国创(大创)申报书
  9. python学生成绩表_通过excel表格分析学生成绩
  10. 一文读懂IPO各板块审核流程
  11. python中npy文件的读取与保存
  12. 面试:1.C#中的委托是什么?事件是一种委托吗?
  13. java数字转为大写_java 数字转大写汉字
  14. 编写一个方法,将一段文本中的各个单词的字母顺序翻转题
  15. ModelWhale 云端运行 WRF 中尺度数值气象模式,随时随地即开即用的一体化工作流
  16. Srpingcloud之eureka,微服架构之注册中心eureka
  17. JS查询日出日落时间和太阳月亮位置
  18. 磷酸铁锂电池充电过压保护
  19. CVE-2014-6321 MS14-066 Microsoft Schannel Remote Code Execution Vulnerability Analysis
  20. GIS原理篇 terrain 基于TIN的表面数据(地形数据)

热门文章

  1. python补充符号和图片_Python 图片转符号图
  2. AI与供应链碰撞,会产生怎样的火花?
  3. 《用JavaScript实现幸运大转盘抽奖程序》 一
  4. 什么是RFP?什么又是CFP?两者的含金量该如何看?
  5. 百度地图多点路线规划_自驾游必备,多地点路线规划功能已经出炉了!!!
  6. 用软件测试710,Tergumed 710 脊柱功能测试训练系统
  7. JavaWeb - jQuery
  8. c语言哥德巴赫数学猜想,哥德巴赫数学猜想“1+1”是怎么回事,你知道吗?丨2018/10/20...
  9. 华硕品牌机驱动存储位置
  10. PacketiX ××× 3.0在Windows Server服务器NT配置步骤