将二叉树拆成链表
来源:互联网 发布:达内软件科技 编辑:程序博客网 时间:2024/06/07 05:20
描述:
将一棵二叉树按照前序遍历拆解成为一个假链表
。所谓的假链表是说,用二叉树的 right 指针,来表示链表中的 next 指针。
样例:
1
\
1 2
/ \ \
2 5 => 3
/ \ \ \
3 4 6 4
\
5
\
6
实现思路:
根据提示,相当于左二子是NULL,我们可以把左子树都存储在右子树里面,通过右指针将所有的节点串联起来,然后遍历整棵树。
实现代码:
/**
* Definition of TreeNode:
* class TreeNode {
* public:
* int val;
* TreeNode *left, *right;
* TreeNode(int val) {
* this->val = val;
* this->left = this->right = NULL;
* }
* }
*/
class Solution {
public:
/**
* @param root: a TreeNode, the root of the binary tree
* @return: nothing
*/
void flatten(TreeNode *root) {
// write your code here
if (root == NULL) return;
while (root!=NULL) {
if (root->left!=NULL) {
TreeNode *p = root->left;
while (p->right!=NULL)
p = p->right;
p->right = root->right;
root->right = root->left;
root->left = NULL;
}
root = root->right;
}
}
};
做题感想:通过这个题,进一步体会指针的用法,而且怎样交换两个节点之间的值。
- 将二叉树拆成链表
- LintCode: 将二叉树拆成链表
- 将二叉树拆成链表
- lintcode,将二叉树拆成链表
- LintCode 将二叉树拆成链表
- 将二叉树拆成链表-LintCode
- 将二叉树拆成链表
- 将二叉树拆成链表
- lintcode 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- lintcode将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- 将二叉树拆成链表
- 机会来自于颠覆旧的商业模式
- 为什么构造函数中调用的虚函数不具有多态性?
- 第八届 蓝桥杯 分巧克力
- IP地址、网关、子网掩码快速切换批处理(windows bat)
- WakeLock的介绍与使用
- 将二叉树拆成链表
- Java中如何动态创建接口的实现
- HttpClient简单操作
- android 从系统图库中选择图片
- SMSC--kernel4.10网卡驱动之移植编写(一)(未完)
- 关于java多态的理解
- 【NOI2015T4】荷马史诗-优先队列实现K进制哈夫曼编码+贪心
- ubuntu下的压缩与解压缩&文件复制
- ListView获取滑动(滚动)停止状态及响应事件