二叉搜索树与双向链表
来源:互联网 发布:电信网络电视怎么开通 编辑:程序博客网 时间:2024/06/11 23:52
题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
/*struct TreeNode {int val;struct TreeNode *left;struct TreeNode *right;TreeNode(int x) :val(x), left(NULL), right(NULL) {}};*/class Solution {public: TreeNode* Convert(TreeNode* pRootOfTree) { if(pRootOfTree == NULL) return NULL; TreeNode* tail = NULL; //设tail为双向链表的最后一个节点 Change(pRootOfTree, &tail); TreeNode* head = tail; //设head为双向链表的第一个节点 while(head -> left != NULL) { head = head -> left; } return head; } void Change(TreeNode* node, TreeNode** tail) { TreeNode* temp = node; if(node -> left != NULL) { Change(node -> left, tail); } //将当前节点加在双向链表的最后 //先使当前的节点与链表的最后一个节点互指 temp -> left = *tail; if(*tail != NULL) { //注意这里一定要加判断条件 (*tail) -> right = temp; } //将当前节点赋给最后一个节点 *tail = temp; if(node -> right != NULL) { Change(node -> right, tail);} }};
0 0
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- 二叉搜索树与双向链表
- Eclipse设置条件断点调试java程序
- 3.23 桶排序
- 请教一下单张图片如何生成深度图?
- web前端优化
- opencv 入门学习
- 二叉搜索树与双向链表
- onchange和window.location
- Spring基础知识汇总
- vue+webpack+thinkphp多页应用配置
- 算法导论 练习题 4.3-7
- 设计模式_单例模式之懒汉式
- 关于 XML 头声明和standalone 的解释
- 输入某年某月某日,判断这一天是这一年的第几天?
- 网络资源链接1