【剑指offer】二叉搜索树与双向链表
来源:互联网 发布:linux telnet 安装 编辑:程序博客网 时间:2024/06/01 13:19
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
分析:题目不能新建新的节点,只能用原有的节点来实现。我们知道对收索二叉树的中序遍历顺序正好是从小到大顺序遍历的,因此我想到先对二叉树进行中序遍历,把节点保存起来,然后在遍历每个节点,使其left指向前一个节点,right指向后一个节点。
程序:
void midiorder(TreeNode *pRootOfTree,vector<TreeNode *> &temp){ //中序遍历;if(pRootOfTree->left) midiorder(pRootOfTree->left,temp);temp.push_back(pRootOfTree);if(pRootOfTree->right) midiorder(pRootOfTree->right,temp);}TreeNode* Convert(TreeNode* pRootOfTree){if(!pRootOfTree) return NULL;vector<TreeNode*> temp;midiorder(pRootOfTree,temp);int i=0;temp[0]->left=NULL;while(i<temp.size()){if(i+1<temp.size()) temp[i]->right=temp[i+1];if(i-1>=0) temp[i]->left=temp[i-1];i++;}temp[i-1]->right=NULL;return temp[0];}
阅读全文
0 0
- 剑指Offer二叉搜索树与双向链表
- 【剑指offer:】Q27:二叉搜索树与双向链表
- 剑指offer--二叉搜索树与双向链表
- 剑指offer 27 - 二叉搜索树与双向链表
- 剑指offer-二叉搜索树与双向链表
- 《剑指offer》二叉搜索树与双向链表
- 【剑指Offer】二叉搜索树与双向链表
- 剑指offer—二叉搜索树与双向链表
- 剑指offer:二叉搜索树与双向链表
- 剑指offer-二叉搜索树与双向链表
- 剑指Offer--027-二叉搜索树与双向链表
- 剑指offer:二叉搜索树与双向链表
- [剑指offer]二叉搜索树与双向链表
- 《剑指offer》-二叉搜索树与双向链表
- 剑指offer-27二叉搜索树与双向链表
- 剑指offer题解 二叉搜索树与双向链表
- 剑指offer|二叉搜索树与双向链表
- 【剑指offer】二叉搜索树与双向链表
- java并发编程实战-线程池的使用2
- POJ—1426
- R
- win10自带虚拟机安装ubuntu系统
- Linux c++ epoll 模型demo
- 【剑指offer】二叉搜索树与双向链表
- 常见C++面试题及基本知识点总结(一)
- 康托展开
- 【JZOJ2702】【GDKOI2012模拟02.01】探险
- 高斯混合模型实践(Python)
- 多路复用IO
- 模拟退火板子 poj1379 hdu 5017 hdu2899
- 【JZOJ4427/HNOI2016模拟】 Alphadog
- 【机器学习杂货铺】——样本不平衡(暂缺)