【LeetCode】Flatten Binary Tree to Linked List
来源:互联网 发布:恒生指数期货数据 编辑:程序博客网 时间:2024/06/11 01:43
Flatten Binary Tree to Linked List
Total Accepted: 18516 Total Submissions: 66328My SubmissionsGiven 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
click to show hints.
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: void flatten(TreeNode *root) { if(root == NULL) return; TreeNode *head = NULL, *tail = NULL; flattenHelper(root,head,tail); root = head; } void flattenHelper(TreeNode *root, TreeNode *&head, TreeNode *&tail) { if (root == NULL) { head = NULL; tail = NULL; return;///////////////////////////////////////// } head = tail = root;//!!!! TreeNode *left_head = NULL, *left_tail = NULL, *right_head = NULL, *right_tail = NULL; if(root->left) { flattenHelper(root->left,left_head,left_tail); } if(root->right) { flattenHelper(root->right,right_head,right_tail); } if (left_head) {//!!!! root->right = left_head; root->left = NULL; } else { left_tail = root;//!!!! } tail = left_tail; if (right_head) {//!!!! left_tail->right = right_head; } else { right_tail = left_tail;//!!!! } tail = right_tail; }};
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
- 学习日记之命令模式和Effective C++
- iPad keyboard will not dismiss if modal view controller presentation style is UIModalPresentationFor
- 2014.08.12 周二-集合框架
- 二分法及其拓展
- 勘探油田(简单的程序设计)图的深度优先和广度优先算法(DFS递归)
- 【LeetCode】Flatten Binary Tree to Linked List
- 视差滚动效果学习之路
- LeetCode | Set Matrix Zeroes(矩阵相应行列清零)
- iOS之HelloWorld及XCode开发平台
- Delete SVN Folders
- Difference between a SOAP message and a WSDL?
- 链式前向星,kosaraju,Tarjan,Gabow算法的理解,POJ 2186 Popular Cows(强连通分量)
- uva 10529 - Dumb Bones(概率+区间dp)
- Android性能优化【终极篇】