LintCode-剑指Offer-(378)将二叉查找树转换成双链表
2015-11-29 14:18
441 查看
class Solution { public: /** * @param root: The root of tree * @return: the head of doubly list node */ DoublyListNode* bstToDoublyList(TreeNode* root) { // Write your code here return getDouble(root); } DoublyListNode* getDouble(TreeNode* node){ DoublyListNode* root=NULL; DoublyListNode* prenode = NULL; DoublyListNode* curnode = NULL; stack<TreeNode*> rightnodestack; TreeNode* tmp = node; while (tmp!=NULL){ rightnodestack.push(tmp); tmp = tmp->left; } while (rightnodestack.empty()==false){ if (root == NULL){ root = new DoublyListNode(rightnodestack.top()->val); root->prev = NULL; prenode = root; } else{ curnode = new DoublyListNode(rightnodestack.top()->val); curnode->prev = prenode; prenode->next = curnode; prenode = curnode; } //cout<<rightnodestack.top()->val<<endl; TreeNode* tmp = rightnodestack.top()->right; rightnodestack.pop(); while (tmp!=NULL){ rightnodestack.push(tmp); tmp = tmp->left; } } return root; } };
相关文章推荐
- Webkit之HTMLTokenizer分析
- DOM----nodeType,nodeName,nodeValue笔记
- jQuery动画animate和scrollTop结合使用
- Webkit之HTMLToken处理
- Webkit之HTMLInput分析
- HTML基础
- 学习--jquery 自定义插件 页面按照模块 垂直滚动
- 混合开发activity和html之间相互跳转
- 《Node.js实战(第2季)》 读书笔记
- 学习--jquery 记录 使用js判断滚轮滚动方向
- 基于javascript代码实现通过点击图片显示原图片
- 整理Javascript数组学习笔记
- Bootstrap中的进度条
- CSS技巧
- js鼠标滚动图片变大小
- CSS应用的方式与注意问题
- 网页脚本输入这么简单
- 使用Protractor进行AngularJS e2e测试案例
- LintCode-剑指Offer-(374)螺旋矩阵
- js小时钟