面试题27 二叉搜索树与双向链表
2016-04-05 23:06
435 查看
题目描述
输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。/* 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 *pNode, TreeNode **pLast){ if (pNode == NULL){ return; } TreeNode *pCur = pNode; if (pCur->left != NULL){ convertNode(pNode->left, pLast); } pCur->left = *pLast; if (*pLast != NULL){ (*pLast)->right = pCur; } *pLast = pCur; if (pCur->right != NULL){ convertNode(pCur->right, pLast); } } TreeNode* Convert(TreeNode* pRootOfTree) { TreeNode *pLast = NULL; convertNode(pRootOfTree, &pLast); TreeNode *pHead = pLast; while (pHead != NULL && pHead->left != NULL){ pHead = pHead->left; } return pHead; } };
相关文章推荐
- 陈皓:一个 fork 的面试题
- 一道JAVA面试,线程安全和静态内部类
- 面试题26 复杂链表的复制
- 数据库基本概念类 面试题
- [leetcode-328]Odd Even Linked List
- 码农小汪-设计模式之-策略模式
- Oralce数据库的优化(面试必问题)
- 让别人舒服的程度决定你路的高度
- 让别人舒服的程度,决定你路的宽度和高度
- 10道高频面试题整理~
- 结构体位制
- 一个程序员的孤独
- LeetCode(25)-symmetric tree
- 剑指offer面试题 求数组中只出现一次的数字
- [置顶] Android开发之数组类的面试题目,android工程师java程序员必备
- 捷通华声面试总结(待更新)
- Android面试记录
- 前端面试总结(转载请标明)
- 程序员必备注释
- SQL tuning 类 的面试题