LC114 Flatten Binary Tree to Linked List
2016-07-28 10:10
120 查看
难点:跟踪前一个节点,正确清除右节点
View Code
class Solution { public: void flatten(TreeNode* root) { if(root==NULL) return; TreeNode* head=root; stack<TreeNode*> is; is.push(root); TreeNode* tmp=root->left; TreeNode* pre=root; while(!is.empty()||tmp!=NULL) { if(tmp!=NULL) { is.push(tmp); pre=tmp; tmp=pre->left; } else { tmp=is.top()->right; if(tmp!=NULL) { if(pre!=is.top()) is.top()->right=NULL; pre->right=tmp; pre=tmp; } is.pop(); } } while(head!=NULL) { if(head->left!=NULL) { head->right=head->left; head->left=NULL; } head=head->right; } } };
View Code
相关文章推荐
- 浅析Java中的final关键字
- 使用链表管理内存
- 微信接口 图灵自动回复
- 最近在使用MediaRecorder录制视频的时候遇到crash
- Pro JPA2读书笔记系列(四)-第四章(对象-关系映射)
- 调用第三方的WS服务
- 编写代码,演示多个字符从两端移动,向中间汇聚。
- 大量LAST_ACK 分析过程
- 2016多校赛 1003(博弈)
- 【1】【数位DP】HDU3555 Bomb
- MySQL快速复制数据库的方法
- BAT及各大互联网公司2014前端笔试面试题--Html,Css篇
- 题目106 背包问题
- NOIP2011普及组】瑞士轮
- 【Java】蜂鸣节拍器的设计与实现
- 理清Activity、View及Window之间关系
- Machine Learning: Clustering and Similarity: Retrieving Documents
- SQL Server 存储过程遇到“表 ''#TT'' 没有标识属性无法执行 SET 操作”错误
- Linux-Tcp-IP
- 浅谈mysql主从复制的高可用解决方案