LeetCode114—Flatten Binary Tree to Linked List
2016-04-07 11:53
471 查看
LeetCode114—Flatten Binary Tree to Linked List
原题
Given a binary tree, flatten it to a linked list in-place.For example,
Given
1 / \ 2 5 / \ \ 3 4 6
The flattened tree should look like:
1
\
2
\
3
\
4
\
5
\
6
分析
最朴素的方法就是先序遍历把节点保存,然后在顺序构造不含左子树的树,网上看到有其他的方法,等学习研究了再更新。代码
class Solution { private: void dfs(TreeNode*root, vector<TreeNode*>&Nodes) { if (root == NULL) return; Nodes.push_back(root); dfs(root->left, Nodes); dfs(root->right, Nodes); } public: void flatten(TreeNode* root) { if (root == NULL) return; vector<TreeNode*>Nodes; dfs(root, Nodes); int i; root->left = NULL; for (i = 0; i < Nodes.size() - 1; i++) { Nodes[i]->right = Nodes[i + 1]; Nodes[i]->left = NULL; } Nodes[i]->right = NULL; root = Nodes[0]; } };
相关文章推荐
- Flash如何插入到PowerPoint2003中
- shell编程之环境配置文件
- c++第三次实验
- 树、森林与二叉树相互转化原理图
- 5-12聊天窗口
- CentOS 6.3 配置VNCServer 5.0.3
- AcDbRegion::createFromCurves 引起的内存泄露
- Django数据库查询相关
- iOS部分知识点小结
- 素数筛法/埃拉托斯特尼筛法(sieve of Eratosthenes)——理解及具体问题
- 在maven项目中获取配置文件
- c++第三次作业
- C++内存泄漏的检测
- C#中Thread与ThreadPool的比较
- “太后”挺多情节不靠谱 特种兵告诉你
- go项目-解决端口占用问题
- Android经典开源项目分享发现
- git详细教程
- C++第三次上机作业
- Nginx Permission denied (errno=13) 解决办法