将二叉树拆成链表
来源:互联网 发布:three.js开发指南 编辑:程序博客网 时间:2024/05/20 13:09
一、问题描述
将一棵二叉树按照前序遍历拆解成为一个假链表
。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。
注意事项
不要忘记将左儿子标记为 null,否则你可能会得到空间溢出或是时间溢出。
样例
1 \ 1 2 / \ \ 2 5 => 3 / \ \ \ 3 4 6 4 \ 5 \ 6
定义一个向量存储下一个点的位置,用右指针连接起来,要注意左儿子为空,运用前序遍历此二叉树,返回此向量即可。
三、我的代码
class Solution {
public:
/**
* @param root: a TreeNode, the root of the binary tree
* @return: nothing
*/
vector<TreeNode*>v;
void flatten(TreeNode*root) {
if(root==NULL) return;
find(root);
for(int i=0;i<v.size();i++)
{
v[i]->right=v[i+1];
v[i]->left=NULL;
}
v[v.size()-1]->right=NULL;
v[v.size()-1]->left=NULL;
}
void find(TreeNode*root)
{
if(root==NULL) return;
v.push_back(root);
find(root->left);
find(root->right);
}
};
四、我的感想
此题要注意定义一个向量存储下一个节点,然后用指针相连,此外要注意左儿子为空这一点。
- 将二叉树拆成链表
- LintCode: 将二叉树拆成链表
- 将二叉树拆成链表
- lintcode,将二叉树拆成链表
- LintCode 将二叉树拆成链表
- 将二叉树拆成链表-LintCode
- 将二叉树拆成链表
- 将二叉树拆成链表
- lintcode 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- lintcode将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- swift中NSTimer的使用
- Spring MVC 自学杂记(五) -- SpringMVC与前台的json数据交互
- 博为峰JavaEE技术文章 —— Hibernate 指南(3)Hbm文件
- 动态规划练习——登山
- 简单介绍一下TPshop商城使用,TPshop商城使用的安装--windows环境
- 将二叉树拆成链表
- HDOJ 1251 统计难题(map or 字典树)
- 第四次上机作业
- Android 什么是 Material Design
- DataServer代码整理-1
- LeakCanary的用法
- 交换机基本配置
- POJ2311 Cutting Game(博弈Multi-SG函数)
- Mininet 学习笔记