【剑指offer-解题系列(26)】二叉搜索树与双向链
来源:互联网 发布:heaven ailee 知乎 编辑:程序博客网 时间:2024/05/17 02:15
题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
分析
从根节点开始调整,把最左最右节点的值返回,使用引用作为传递
代码实现
TreeNode* Convert(TreeNode* root)
{
if(root==NULL)return NULL;
TreeNode* start;
TreeNode* end;
Convert( root, start, end);
return start;
}
void Convert(TreeNode* root, TreeNode* & start, TreeNode* & end)
{
if (root->left == NULL && root->right == NULL ) {
start=root;
end=root;
return;
}
TreeNode* start_left=NULL;
TreeNode* end_left=NULL;
if (root->left) {
Convert(root->left, start_left, end_left);
end_left->right = root;
root->left = end_left;
}
TreeNode* start_right=NULL;
TreeNode* end_right=NULL;
if (root->right) {
Convert(root->right, start_right, end_right);
start_right->left = root;
root->right = start_right;
}
if(start_left)
start = start_left;
else
start = root;
if(end_right)
end = end_right;
else
end = root;
}
- 【剑指offer-解题系列(26)】二叉搜索树与双向链
- 剑指offer系列源码-二叉搜索树与双向链表
- 剑指offer系列之二十五:二叉搜索树与双向链表
- 【剑指offer系列】 二叉搜索树与双向链表___27
- 剑指offer系列之25:二叉搜索树与双向链表
- 剑指Offer系列-面试题27:二叉搜索树与双向链表
- 剑指Offer——(26)二叉搜索树与双向链表
- 剑指offer第26题(二叉搜索树与双向链表)
- 剑指Offer二叉搜索树与双向链表
- 【剑指offer:】Q27:二叉搜索树与双向链表
- 剑指offer--二叉搜索树与双向链表
- 剑指offer 27 - 二叉搜索树与双向链表
- 剑指offer-二叉搜索树与双向链表
- 《剑指offer》二叉搜索树与双向链表
- 【剑指Offer】二叉搜索树与双向链表
- 剑指offer—二叉搜索树与双向链表
- 剑指offer:二叉搜索树与双向链表
- 剑指offer-二叉搜索树与双向链表
- php开发-搭建环境之php配置
- Hadoop试题
- win7中专用字符编辑器中的字符怎么复制到word中?
- Bootstrap CSS
- 1027. Colors in Mars (20)(PAT甲)
- 【剑指offer-解题系列(26)】二叉搜索树与双向链
- Android之Fragment
- 谈谈我对Java并发的理解——读《Java并发编程实战有感》
- Java:++x与x++、短路现象
- Git 入门
- 【SDOI2009】学校食堂
- 谈谈Java对象序列化
- ViewPager
- python爬虫基础学习-01