【剑指offer 面试题27】二叉搜索树与双向链表
2015-07-08 21:15
267 查看
输入一颗二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。
C++:
C++:
#include <iostream> using namespace std; struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x = 0):val(x), left(NULL), right(NULL){} }; void ConvertNode(TreeNode *pNode, TreeNode **pLastNode) { if(pNode == 0) return ; if(pNode->left != 0) ConvertNode(pNode->left, pLastNode); pNode->left = (*pLastNode); if((*pLastNode) != 0) (*pLastNode)->right = pNode; (*pLastNode) = pNode; if(pNode->right != 0) ConvertNode(pNode->right, pLastNode); } int main() { TreeNode *root = new TreeNode(10); TreeNode *node6 = new TreeNode(6); TreeNode *node14 = new TreeNode(14); TreeNode *node4 = new TreeNode(4); TreeNode *node8 = new TreeNode(8); TreeNode *node12 = new TreeNode(12); TreeNode *node16 = new TreeNode(16); root->left = node6; root->right = node14; node6->left = node4; node6->right = node8; node14->left = node12; node14->right = node16; TreeNode *pLastNode = NULL; ConvertNode(root, &pLastNode); while(pLastNode != 0) { cout<<pLastNode->val<<" "; pLastNode = pLastNode->left; } }
相关文章推荐
- 面试题26:复杂链表的赋值
- 爱奇艺算法工程师面试题(2015年)
- 《程序员的自我修养》读书笔记6
- 黑马程序员---反射
- 黑马程序员--小结
- block面试题
- 史上最全的程序员求职渠道总结
- 细说高级程序员的几个成长阶段
- 对程序员非常重要的24个软技能
- 【面试题】-反转句子
- (剑指Offer)面试题11:数值的整数次方
- 黑马程序员——JAVA String类
- 黑马程序员——JAVA异常
- 黑马程序员——JAVA类和对象
- 黑马程序员—Java反射
- Java7K面试题—银行业务调度系统
- 黑马程序员—交通灯管理系统
- (剑指Offer)面试题10:二进制中1的个数
- 记一次糟糕的面试
- 黑马程序员---正则表达式