[剑指Offer] 26.二叉搜索树与双向链表
【思路】因为二叉搜索树的中序遍历就是递增排列的,所以只要在中序遍历时将每个结点放入vector中,再分别为每个结点的左右指针赋值即可。
1 /* 2 struct TreeNode { 3 int val; 4 struct TreeNode *left; 5 struct TreeNode *right; 6 TreeNode(int x) : 7 val(x), left(NULL), right(NULL) { 8 } 9 };*/ 10 class Solution 11 { 12 public: 13 vector<TreeNode *> nodeVector; 14 15 void inOrder(TreeNode* root) 16 { 17 if(root->left) 18 inOrder(root->left); 19 nodeVector.push_back(root); 20 if(root->right) 21 inOrder(root->right); 22 } 23 24 TreeNode* Convert(TreeNode* pRootOfTree) 25 { 26 if((pRootOfTree == NULL) || (!pRootOfTree->left) && (!pRootOfTree->right)) 27 return pRootOfTree; 28 inOrder(pRootOfTree); 29 nodeVector[0]->left = NULL; 30 nodeVector[0]->right = nodeVector[1]; 31 int i = 1; 32 for( ; i < nodeVector.size() - 1; i ++) 33 { 34 nodeVector[i]->left = nodeVector[i - 1]; 35 nodeVector[i]->right = nodeVector[i + 1]; 36 } 37 nodeVector[i]->left = nodeVector[i - 1]; 38 nodeVector[i]->right = NULL; 39 return nodeVector[0]; 40 } 41 };
转载于:https://www.cnblogs.com/lca1826/p/6496874.html
[剑指Offer] 26.二叉搜索树与双向链表相关推荐
- 【LeetCode】剑指 Offer 36. 二叉搜索树与双向链表
[LeetCode]剑指 Offer 36. 二叉搜索树与双向链表 文章目录 [LeetCode]剑指 Offer 36. 二叉搜索树与双向链表 package offer;//定义节点 class ...
- 【剑指offer】二叉搜索树转双向链表,C++实现
原创博文,转载请注明出处! # 题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向. 二叉树节点的定义 struct TreeNod ...
- 【Java】 剑指offer(36) 二叉搜索树与双向链表
本文参考自<剑指offer>一书,代码采用Java语言. 更多:<剑指Offer>Java实现合集 题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不 ...
- 【LeetCode笔记】剑指 Offer 36. 二叉搜索树与双向链表(Java、二叉树、链表、原地算法)
文章目录 题目描述 思路 && 代码 1. 非原地算法 2. 原地算法 二刷 题目描述 谈到二叉搜索树,那就得考虑考虑中序遍历啦- 这道题对中序遍历的理解提升很有好处! 思路 & ...
- [剑指offer] 36. 二叉搜索树与双向链表
题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表.要求不能创建任何新的节点,只能调整树中节点指针的指向. 需要返回双向链表最左侧的节点. 思路 1 排序链表:利用二叉搜索树的中序遍 ...
- 剑指offer之二叉搜索树和双向链表
1 问题 比如我们搜索二叉树如下,我们需要变成双向链表 2 分析 我们知道这个变成双向链接的时候是按照树的中序遍历打印的,我们只需要在中序遍历打印的时候操作该节点,我们可以用临时变量保存这个节点,同时 ...
- 【算法】剑指 Offer 36. 二叉搜索树与双向链表
1.概述 地址:https://leetcode-cn.com/problems/er-cha-sou-suo-shu-yu-shuang-xiang-lian-biao-lcof/ /* // De ...
- 2021-08-19剑指 Offer 36. 二叉搜索树与双向链表
我的思路: 前序遍历保证链表的有序性,并且在这个遍历的同时调整指针的指向 class Solution {public:Node* treeToDoublyList(Node* root) {if(r ...
- 【LeetCode】剑指 Offer 33. 二叉搜索树的后序遍历序列
[LeetCode]剑指 Offer 33. 二叉搜索树的后序遍历序列 文章目录 [LeetCode]剑指 Offer 33. 二叉搜索树的后序遍历序列 package offer;public cl ...
- 【LeetCode】剑指 Offer 54. 二叉搜索树的第k大节点
[LeetCode]剑指 Offer 54. 二叉搜索树的第k大节点 文章目录 [LeetCode]剑指 Offer 54. 二叉搜索树的第k大节点 一.中序遍历(提前返回) 一.中序遍历(提前返回) ...
最新文章
- tongweb安装部署_Linux系统东方通部署iserver说明
- C#学习笔记(八)——定义类的成员
- 后缀数组--(可重叠最长重复子串问题)
- 赠与大学毕业生_出售,赠与或交易iPhone之前应该做什么
- 【渝粤教育】电大中专就业指导 (3)作业 题库
- 【No.1】基于Cookie的单点登录(SSO)
- C# Base64方式的编码与解码
- tenorflow+python程序打包成.exe(收集方法1)
- 知识竞赛时,竞赛活动主题及环节主题如何修改?
- 学校培训课程预约报名登记收缴费用小程序开发制作
- java中的IO整理(转)
- 7个月时间“从零到亿”,社交电商靠谱好物为何总能占据行业“C位”?
- vue 前端解析Excel
- 抖音新号怎么快速涨粉(8种抖音运营吸粉技巧)
- 通过URL访问韩国Naver地图
- CAM350导入rou文件报错‘No header % found,load stopped‘
- Hive案例之股票分析
- 汽车大数据洞察:慧数汽车发布《车评白皮书2019》
- CentOS 7 更改 任务栏 高度
- 游戏网站的设计与实现(HTML和CSS实现魔兽世界官网)
热门文章
- vscode-更换图标主题VSCode Icons.
- 如何隐藏Windows7 系统保留分区
- Sql Server 中 根据具体的值 查找该值所在的表和字段
- Linux下编译googletest
- Hibernate之一对多与多对一映射
- centOs环境初始化运行nginx+redis+zookeeper+dubbo_admin
- python怎么爬取一个网页图片_python3爬取网页图片
- Excel文件导入mysql数据库
- 象棋软件最强手机版_我说它是地表手机最强清理软件,没意见吧
- php round函数输出不对_PHP第一章-变量