***(leetcode) (tree) Flatten Binary Tree to Linked List
来源:互联网 发布:上海软件市场 编辑:程序博客网 时间:2024/04/30 10:57
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
click to show hints.
思路:递归,将左右子树 flatten后,调节位置即可,但是不要忘了left要置为NULL!!!!
/** * 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 *tmp=NULL; if(root->left!=NULL){ flatten(root->left); tmp = root->left; while(tmp!=NULL&&tmp->right!=NULL) tmp=tmp->right; } if(root->right!=NULL) flatten(root->right); if(tmp!=NULL){ tmp->right=root->right; root->right = root->left; root->left=NULL; // left要置为空,这个地方没注意,一直runTime error OJ的出错的测试例子这部分还不会影响,艹 } }};
非递归的方法: 类似于调整最小堆,从上往下依次调整
class Solution {public: void flatten(TreeNode *root) { if(root==NULL) return; while(root!=NULL){ if(root->left!=NULL){ TreeNode *pre = root->left; while(pre->right!=NULL) pre=pre->right; pre->right=root->right; root->right=root->left; root->left=NULL; } root = root->right; } }};
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
- 基于NXP523芯片,射频读卡器,支持二代证ID,ISO14443A/B
- 社交招聘网络Linkedin的使用体验(HR招聘篇2)
- skb_buf数据结构
- iOS 8 模拟器
- erlang下A*算法的效率优化过程
- ***(leetcode) (tree) Flatten Binary Tree to Linked List
- CentOS 6.5 yum安装配置lnmp服务器(Nginx+PHP+MySQL)
- C#生成随机数
- 搭建并运行基于HA模式的canal
- mysql 的一个死锁问题解决
- jquery 自带的提示样式
- 自定义控件例如LinearLayout 的三种方法
- 海淘记录第二
- SQL锁表语句