[LeetCode] Flatten Binary Tree to Linked List
来源:互联网 发布:正装皮鞋 品牌 知乎 编辑:程序博客网 时间:2024/05/01 16:18
问题:
Given a binary tree, flatten it to a linked list in-place.
For example,
Given
1 / \ 2 5 / \ \ 3 4 6The flattened tree should look like:
1 \ 2 \ 3 \ 4 \ 5 \ 6
分析:
看到bst问题,第一个想到的就是递归。这道题也可以用递归解决。但有一个问题出现了:当我们用递归把一个node左边flattern了,右边也flattern了,怎么连起来呢?下面的代码中巧妙地使用了一个变量,它是一个reference to pointer。它保存的是将要放在右边的东东。
代码:
class Solution {public:void flatternHelper(TreeNode *root, TreeNode *&toAttach) {if (root) {flatternHelper(root->right, toAttach);flatternHelper(root->left, toAttach);root->right = toAttach;toAttach = root;root->left = NULL;}}void flatten(TreeNode *root) {TreeNode *toAttach = NULL;flatternHelper(root, toAttach);}};
0 0
- LeetCode: Flatten Binary Tree to Linked List
- LeetCode Flatten Binary Tree to Linked List
- LeetCode: Flatten Binary Tree to Linked List
- [Leetcode] Flatten Binary Tree to Linked List
- [LeetCode] Flatten Binary Tree to Linked List
- Leetcode: Flatten Binary Tree to Linked List
- leetcode Flatten Binary Tree to Linked List
- LeetCode Flatten Binary Tree to Linked List
- LeetCode - Flatten Binary Tree to Linked List
- 【leetcode】Flatten Binary Tree to Linked List
- [LeetCode]Flatten Binary Tree to Linked List
- [Leetcode]Flatten Binary Tree to Linked List
- [leetcode]Flatten Binary Tree to Linked List
- LeetCode-Flatten Binary Tree to Linked List
- [leetcode] Flatten Binary Tree to Linked List
- LeetCode - Flatten Binary Tree to Linked List
- LeetCode:Flatten Binary Tree to Linked List
- [LeetCode] Flatten Binary Tree to Linked List
- php定时计划任务的例子
- Linux下新增硬盘的方法
- Linux下监控程序并自动重启
- 大师的话一语道破.强烈建议阅读
- Notepad++ 列操作
- [LeetCode] Flatten Binary Tree to Linked List
- wikioi 石子归并
- No configuration found for the specified action: '/myNameSpace/login.action' in namespace: ''. Form
- CRM上线之路 走上了CRM实施顾问-第106天上班 -第22周
- 从外包走向自主开发 --- 思维转变
- 数据库优化实践【索引篇】
- 红黑树 vs 最小堆
- 判断是否字符串重组 Scramble String @LeetCode
- Gson和SharedPreferences轻松构建android本地数据缓存