[剑指offer][面试题27]二叉搜索树与双向链表
来源:互联网 发布:js漂浮广告带关闭 编辑:程序博客网 时间:2024/05/15 13:27
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。
#include <iostream>using namespace std;struct Node{int m_nData;Node *m_pLeft;Node *m_pRight;};void convertCore(Node *pRoot, Node** ppLastNode){if (pRoot==NULL){return;}if (pRoot->m_pLeft){convertCore(pRoot->m_pLeft, ppLastNode);}pRoot->m_pLeft = *ppLastNode;if (*ppLastNode){(*ppLastNode)->m_pRight = pRoot;}*ppLastNode = pRoot;if (pRoot->m_pRight){convertCore(pRoot->m_pRight, ppLastNode);}}Node* convertBSTreeToBiDirectList(Node *pRoot){if (pRoot==NULL){return NULL;}Node *pLastNode = NULL;convertCore(pRoot, &pLastNode);while (pLastNode && pLastNode->m_pLeft){pLastNode = pLastNode->m_pLeft;}return pLastNode;}int main(){Node *node1 = new Node; node1->m_nData = 10; Node *node2 = new Node; node2->m_nData = 6; Node *node3 = new Node; node3->m_nData = 14; Node *node4 = new Node; node4->m_nData = 4; Node *node5 = new Node; node5->m_nData = 8; Node *node6 = new Node; node6->m_nData = 12; Node *node7 = new Node; node7->m_nData = 16; node1->m_pLeft = node2; node1->m_pRight = node3; node2->m_pLeft = node4; node2->m_pRight = node5; node3->m_pLeft = node6; node3->m_pRight = node7; node4->m_pLeft = NULL; node4->m_pRight = NULL; node5->m_pLeft = NULL; node5->m_pRight = NULL; node6->m_pLeft = NULL; node6->m_pRight = NULL; node7->m_pLeft = NULL; node7->m_pRight = NULL; Node *pListNode = convertBSTreeToBiDirectList(node1);while (pListNode){cout<<pListNode->m_nData<<" ";pListNode = pListNode->m_pRight;}cout<<endl;}
- [剑指offer][面试题27]二叉搜索树与双向链表
- [剑指offer]面试题27 二叉搜索树与双向链表
- 剑指Offer:面试题27 二叉搜索树与双向链表
- 《剑指Offer》 面试题27:二叉搜索树与双向链表
- 《剑指Offer》学习笔记--面试题27:二叉搜索树与双向链表
- 剑指offer 面试题27—二叉搜索树与双向链表
- 剑指offer--面试题27:二叉搜索树与双向链表--Java实现
- 【剑指Offer学习】【面试题27:二叉搜索树与双向链表】
- 剑指Offer面试题27(Java版):二叉搜索树与双向链表
- 剑指offer之面试题27:二叉搜索树与双向链表
- 剑指offer之面试题27二叉搜索树与双向链表
- 剑指Offer----面试题27:二叉搜索树与双向链表
- 剑指Offer-面试题27:二叉搜索树与双向链表
- 剑指Offer:面试题27——二叉搜索树与双向链表(java实现)
- 剑指offer面试题27:二叉搜索树与双向链表
- 剑指offer--面试题27:二叉搜索树与双向链表
- 剑指Offer面试题27(Java版):二叉搜索树与双向链表
- 剑指offer——面试题27:二叉搜索树与双向链表
- mini2440 usb host device controller驱动分析(二) -----数据(urb)的收发流程
- 矩阵连乘问题
- 软件测试面试 (二) 如何测试网页的登录页面
- 第七周项目3-求三数最大
- 销售客户主数据查询(带参数跳转到事物代码)
- [剑指offer][面试题27]二叉搜索树与双向链表
- UVa 11152 - Colourful Flowers
- 解惑rJava R与Java的高速通道
- Linux时间戳和标准时间的互转
- 个人实践:ubuntu 12.04 3D 配置
- eclipse的html、jsp等编辑插件
- PHP中超时提示Fatal error: Maximum ex...
- JavaMail通过IMAP和POP3接收未读以及设置已读邮件
- MySQL 返回影响行数的测试示例