/*
题目:
将二叉搜索树转化为排序的双向链表,不能创建新的节点,
只能调整节点的指向,返回双向链表的头节点。
*/
/*
思路:
递归。
二叉搜索树的中序遍历得到的序列是递增序列。
左子树left<=>root<=>右子树right。
左链表left<=>root<=>右链表right。
对于左链表,我们需要它的最后一个节点;对于右链表,我们需要它的第一个节点。
我们设置一个公共节点表示lastNode,函数返回firstNode。
将root节点跟在做链表后,将右链表跟在root节点之后,则得到最终结果。
*/
#include<iostream>
#include<string.h>
#include<algorithm>
#include<cmath>
#include<stdio.h>
#include<vector>
#include<stack>
#include<queue> using namespace std; struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
}; TreeNode* lastNode = nullptr;
TreeNode* Convert(TreeNode* pRootOfTree)
{
if(pRootOfTree == nullptr || (pRootOfTree->left == nullptr && pRootOfTree->right == nullptr)) {
lastNode = pRootOfTree;
return pRootOfTree;
}
TreeNode* left = Convert(pRootOfTree->left);
if(left != nullptr){
lastNode->right = pRootOfTree;
pRootOfTree->left = lastNode;
}
TreeNode* right = Convert(pRootOfTree->right);
if(right != nullptr){
pRootOfTree->right = right;
right->left = pRootOfTree;
}
lastNode = (right == nullptr) ? pRootOfTree : right;
return (left == nullptr)? pRootOfTree : left; }

  

最新文章

  1. 【问题&amp;解决】sql2012安装时卡在正在启动操作系统功能"NetFx3"上不动的解决办法
  2. 安装gitolite,并ssh公钥无密码登录
  3. MVC&amp;WebForm对照学习:ajax异步请求
  4. Codeforces Round #Pi (Div. 2) B. Berland National Library 模拟
  5. python 定义函数
  6. UILable自适应frame
  7. python 函数初识和文件操作
  8. Html 加载音乐代码mp3
  9. 关于http状态码204理解
  10. Extjs视频
  11. 纯CSS二级纵向菜单
  12. 解决jequry使用keydown无法跳转的问题
  13. 基于SpringBoot从零构建博客网站 - 整合lombok和mybatis-plus提高开发效率
  14. 升级AndroidStudio3.4问题汇总
  15. Linux 小知识翻译 - 「版本号」的命名方式
  16. LeetCode 937 Reorder Log Files 解题报告
  17. OpenShift nfs 持久化
  18. fjwc2019 D3T2 送分题
  19. Spring常用知识点
  20. [svc][op]Ubuntu初始化安装-py用机器优化

热门文章

  1. Codeforces Round #618 (Div. 2)
  2. 【存储类、链接、存储管理】分配内存:malloc()、free()
  3. android实例 listview与sqlite数据绑定
  4. ubuntu 如何搭建svn 服务器
  5. 洛谷P1649 【[USACO07OCT]障碍路线Obstacle Course】
  6. java架构之路-(微服务专题)初步认识微服务与nacos初步搭建
  7. Unity酱~ 卡通渲染技术分析(一)
  8. Unity酱~ 卡通渲染技术分析(二)
  9. 记一次IE浏览器做图片预览的坑
  10. logstash 配置文件语法