将二叉查找树转换为有序的双向链表
2015-08-29 18:46
357 查看
// pFirstNode:转换后双向链表的第一个节点的指针
// pLastNode:转换后双向链表的最后一个节点的指针
// pLastNode:转换后双向链表的最后一个节点的指针
void Convert(BinaryTreeNode *pRoot, BinaryTreeNode *&pFirstNode, BinaryTreeNode *&pLastNode) { BinaryTreeNode *pFirstLeft, *pLastLeft; // 左子树转化为双向链表后的第一个、最后一个节点的指针 BinaryTreeNode *pFirstRight, *pLastRight; // 右子树转换为双向链表的第一个、最后一个节点的指针 if (pRoot == NULL) { pFirstNode = NULL; pLastNode = NULL; } if (pRoot->lchild == NULL) { pFirstNode = pRoot; } else { Convert(pRoot->lchild, pFirstLeft, pLastLeft); pFirstNode = pFirstLeft; pLastLeft->rchild = pRoot; pRoot->lchild = pLastLeft; } if (pRoot->rchild == NULL) { pLastNode = pRoot; } else { Convert(pRoot->rchild, pFirstRight, pLastRight); pLastNode = pLastRight; pRoot->rchild = pFirstRight; pFirstRight->lchild = pRoot; } }
相关文章推荐
- [LeetCode]Linked List Cycle
- 赋值和属性变量下划线
- C++名字空间详解
- 开源框架xUtils的学习
- C++名字空间详解
- Candy
- 块级元素和行内元素的特点
- 数据结构与算法练习Java版练习1.9和1.10
- linux学习笔记之文件搜索命令
- POJ-1326
- 数据-二分图-F - Air Raid
- 两种方式截取字符串
- MR案例:输出/输入SequenceFile
- 使用Python脚本将文字转换为图片的实例分享
- 各种C++:Borland C++、Symantec C++、Microsoft VisualC++
- java保留有效数字
- UVa 821 - Page Hopping(Floyd)
- 漫谈构建运维平台化2014运维线下沙龙(北京站) | 峰云就她了
- osx 数字签名问题
- Follow your heart