1. 题目

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

示例 :输入:[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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/increasing-order-search-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 二叉树中序遍历

class Solution {public:TreeNode* increasingBST(TreeNode* root) {bool getroot = false;stack<TreeNode*> stk;TreeNode *newroot, *prev, *cur;while (root || !stk.empty()){while(root){stk.push(root);root = root->left;}root = stk.top();if(!getroot){newroot = new TreeNode(root->val);prev = newroot;getroot = true;}else{cur = new TreeNode(root->val);prev->right = cur;prev = cur;}stk.pop();root = root->right;}return newroot;}
};
# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def increasingBST(self, root: TreeNode) -> TreeNode:prev = Nonehead = Nones = []while root or len(s)>0:while root:s.append(root)cur = rootroot = root.leftcur.left = Noneroot = s.pop()if prev:prev.right = rootelse:head = rootprev = rootroot = root.rightreturn head

36 ms 14.9 MB Python3

LeetCode 897. 递增顺序查找树(中序遍历)相关推荐

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

    给你一个树,请你 按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点. 示例 : 来源:力扣(LeetCode) 链接:https://leetcode- ...

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

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

  3. 897. 递增顺序查找树

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

  4. Java版二叉树的前序遍历查找、中序遍历查找和后序遍历查找

    文章收藏的好句子:任何挫折,如果无法彻底击败你,那一定会使你更强. 目录 1.二叉树的节点查找 1.1 前序遍历查找 1.2 中序遍历查找 1.3 后序遍历查找 1.二叉树的节点查找  1.1 前序遍 ...

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

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

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

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

  7. LeetCode 98验证二叉搜素树(中序遍历)99恢复二叉搜索树

    微信搜一搜:bigsai 大家都在关注的刷题.学习数据结构和算法宝藏项目 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 92反转链表Ⅱ&93复制ip地址&94 ...

  8. LeetCode 285. 二叉搜索树中的顺序后继(中序遍历)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个二叉搜索树和其中的某一个结点,请你找出该结点在树中顺序后继的节点. 结点 p 的后继是值比 p.val 大的结点中键值最小的结点. 示例 1: 输 ...

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

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

最新文章

  1. 2021阿里技术人的成长路径!
  2. 没有导师的指导,研究生如何阅读文献、提出创见、写论文?
  3. python mainloop函数_python中的mainloop()函数
  4. Go 语言编程 — 作用域
  5. LightOJ 1088 - Points in Segments 二分
  6. mt65xx android phone win10驱动,mt65xx android phone驱动下载
  7. Dapr是如何简化微服务的开发和部署
  8. Dreamweaver Flash Photoshop网页设计综合应用 (智云科技) [iso] 1.86G​
  9. 有一分数序列求前20项和答案c语言,用c语言求解:有一分数序列2/1,3/2,5/3,8/5,13/8,21/13,…求这个数列的前20项之和....
  10. oracle 11g 使用图解,oracle 11g adrci 工具使用方法
  11. java错误页面_java自定义错误页面实现方法
  12. 53 - leetcode 1. 两数之和 数据结构map类
  13. #import和@class 的区别
  14. STL算法之 copy、copy_backward、copy_n
  15. 计算机打印东西怎么横向打印机,打印机横向打印怎么设置,打印机不能横向打印...
  16. 【英语面试】一.计算机专业英语面试常见问题(家庭/家乡/学校篇)
  17. 后台管理系统-前端2
  18. Vector NTI 11.5.3| Win版 | 生物专业软件 | 安装教程
  19. php任意文件删除漏洞,myblog/phpyun4.3任意文件删除漏洞.md at master · source-trace/myblog · GitHub...
  20. 解决跨网段远程调试的问题

热门文章

  1. 微信正则表达式 iOS
  2. getAttribute实例例java_Java ExifInterface.getAttribute方法代码示例
  3. C/C++关键字解析
  4. java 最优化_java-多维度求最优解
  5. VS2017打开低版本的VS MVC架构的项目的时候需要修改的地方
  6. python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)...
  7. [BZOJ1669][Usaco2006 Oct]Hungry Cows饥饿的奶牛
  8. react-router 页面离开 提示数据变更
  9. Maven配置项目依赖使用本地仓库的方法汇总
  10. 努力过头了,其实并不好