97. 递增顺序搜索树
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. 递增顺序搜索树相关推荐
- LeetCode简单题之递增顺序搜索树
题目 给你一棵二叉搜索树的 root ,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点. 示例 1: 输入:root ...
- LeetCode Algorithm 897. 递增顺序搜索树
897. 递增顺序搜索树 Ideas 看到搜索二叉树就想到了它的中序遍历序列是有序的,所以干脆直接用中序遍历序列,把每一项的left结点都置为nullptr,right结点置为下一项就OK了. 需要注 ...
- leetcode 897. 递增顺序搜索树(中序遍历)
给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点. 示例 1: 输入:root = [5,3,6,2 ...
- LeetCode 每日一题 2021-4-25 (递增顺序搜索树)
897. 递增顺序搜索树 难度简单 给你一棵二叉搜索树,请你 按中序遍历 将其重新排列为一棵递增顺序搜索树,使树中最左边的节点成为树的根节点,并且每个节点没有左子节点,只有一个右子节点. 示例 1: ...
- LeetCode 897. 递增顺序搜索树
897. 递增顺序搜索树 [递归]比较捞,目前只想到了把所有节点保存一遍再更改左右指针的指向. class Solution {List<TreeNode> list = new Arra ...
- LeetCode 897 递增顺序搜索树
https://leetcode-cn.com/problems/increasing-order-search-tree/ 解决方案 Morris中序遍历 class Solution {publi ...
- 力扣——按递增顺序显示卡牌
牌组中的每张卡牌都对应有一个唯一的整数.你可以按你想要的顺序对这套卡片进行排序. 最初,这些卡牌在牌组里是正面朝下的(即,未显示状态). 现在,重复执行以下步骤,直到显示所有卡牌为止: 从牌组顶部抽一 ...
- 897. 递增顺序查找树-未解决
897. 递增顺序查找树 https://leetcode-cn.com/contest/weekly-contest-100/problems/increasing-order-search-tre ...
- leetcode950. 按递增顺序显示卡牌
牌组中的每张卡牌都对应有一个唯一的整数.你可以按你想要的顺序对这套卡片进行排序. 最初,这些卡牌在牌组里是正面朝下的(即,未显示状态). 现在,重复执行以下步骤,直到显示所有卡牌为止: 从牌组顶部抽一 ...
最新文章
- 递归神经网络——就是解决AST这样的问题
- Mac 安装redis
- [SDOI 2010]外星千足虫
- java实现数组排序代码_Java使用选择排序法对数组排序实现代码
- MySQL SQL优化之覆盖索引
- 10-12Linux流编程的一些知识点
- mysql中文坑爹的东西
- 服务器打微软补丁后无法启动,关于打了最新微软补丁后,针式打印机突然不好打印的处理方法。...
- mysql dbutil_通过dbutil操作数据库
- Allegro 使用技巧
- 广数25i系统倒刀回刀m代码_广数系统指令
- 吴恩达机器学习教程中文笔记目录
- 制作世界人口地图json--10.4学习日记
- 牛客竞赛:第三届超越杯程序设计团体赛题解
- from PyQt6 import QtCore, QtGui, QtWidgets ImportError: DLL load failed while importing QtGui:
- python seaborn学习笔记
- rsync下行同步和inotify实时同步部署
- 最新干货get,手机相机项目的整体测试流程是怎样的?
- 使用自定义字体升级您的 SwiftUI 应用程序教程,如何在 SwiftUI 中添加自定义字体
- JSD-2204-Java语言基础-运算符-分支结构-Day03
热门文章
- 快手自动私信的实现步骤与部分代码
- oracle 数据库执行 alter table rename to 后表及索引的统计信息变化
- 多旋翼飞行器设计与控制(七)—— 传感器标定和测量模型
- 液体采样泵WKA1000升级品WKY1000
- [源码解析] PyTorch分布式优化器(1)----基石篇
- 一个程序员老总的年终总结2009版
- 人体一机竞技格斗机器人_工匠社发布首款“人机一体”消费级竞技格斗机器人 不服就干!...
- 学生管理系统软件实现与测试,学生信息管理系统实现
- 【论文阅读004】:V-Fuzz: Vulnerability Prediction-Assisted Evolutionary Fuzzing for Binary Programs
- U3D开发Space Invader中的一些细节