剑指offer(26)—二叉搜索树与双向链表
来源:互联网 发布:it cost 编辑:程序博客网 时间:2024/06/07 16:22
二叉搜索树与双向链表
题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
代码
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class Solution {public: void ConvertNode(TreeNode* pRoot, TreeNode** pListLast){ if (pRoot == NULL) return; TreeNode* ptmp = pRoot; if (pRoot->left) ConvertNode(pRoot->left, pListLast); ptmp->left = *pListLast; if (*pListLast) (*pListLast)->right = ptmp; *pListLast = ptmp; if (pRoot->right) ConvertNode(pRoot->right, pListLast);}TreeNode* Convert(TreeNode* pRootOfTree){ //链表的尾结点 TreeNode* pListLast = NULL; ConvertNode(pRootOfTree, &pListLast); // 找到链表的头结点 TreeNode* pListHead = pListLast; while (pListHead && pListHead->left) pListHead = pListHead->left; return pListHead;}};
阅读全文
0 0
- 剑指offer—二叉搜索树与双向链表
- 剑指Offer二叉搜索树与双向链表
- 【剑指offer:】Q27:二叉搜索树与双向链表
- 剑指offer--二叉搜索树与双向链表
- 剑指offer 27 - 二叉搜索树与双向链表
- 剑指offer-二叉搜索树与双向链表
- 《剑指offer》二叉搜索树与双向链表
- 【剑指Offer】二叉搜索树与双向链表
- 剑指offer:二叉搜索树与双向链表
- 剑指offer-二叉搜索树与双向链表
- 剑指Offer--027-二叉搜索树与双向链表
- 剑指offer:二叉搜索树与双向链表
- [剑指offer]二叉搜索树与双向链表
- 《剑指offer》-二叉搜索树与双向链表
- 剑指offer-27二叉搜索树与双向链表
- 剑指offer题解 二叉搜索树与双向链表
- 剑指offer|二叉搜索树与双向链表
- 【剑指offer】二叉搜索树与双向链表
- 【C语言】【unix c】进程的创建
- 【拜小白opencv】25-综合示例——8种阈值化操作【OTSU阈值化、自适应阈值化、二进制阈值化、反二进制阈值化、截断阈值化、阈值化为0、反阈值化为0,双阈值化】
- 数据结构封装之《LinkList单向链表》
- 0网络安全小问答
- Dubbo学习笔记(一)
- 剑指offer(26)—二叉搜索树与双向链表
- 基于CAS的单点登录SSO[1]: 搭建CAS单点登录demo
- 基于雷达的安防视频监控系统软件设计
- Boost在Linux和windows下的编译 32位 64位
- 区块链目前的几大共识算法
- BufferedReader实例浅析
- 三种方法实现js跨域访问
- 数据结构封装之《StaticList静态链表》
- OSG-粒子系统和初步