树的操作-将树变为链表(Flatten Binary Tree to Linked List)
来源:互联网 发布:矩阵的几是定值吗 编辑:程序博客网 时间:2024/06/03 13:08
1 Orginal problem:
Given a binary tree, flatten it to a linked list in-place.
For example,Given
1 / \ 2 5 / \ \ 3 4 6
The flattened tree should look like:
1 \ 2 \ 3 \ 4 \ 5 \ 6
2 Solution
using post-order traverse of tree, you can solve it.
The code in C++ as follow:
/** * Definition for a binary tree node. * 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 ; flatten(root->left); //先处理左子树为链表,该语句返回时左子树已成链表 flatten(root->right);//再处理右子树为链表,该语句返回时右子树已成链表 //最后合并两个链表即可 TreeNode* tmp=root->right;//先备份一下右子树的根 root->right=root->left;//将左子树对应的链表链接在根的右子树上 TreeNode * tail=root; for(;tail->right;tail=tail->right);//找到左子树链表的末尾 tail->right=tmp;//将其与右子树链表头链接 root->left=NULL;//最后不要忘了将左子树置空,如果没有这句,leetCode 将会提示“double free or corruption (fasttop): 0x0000000002785160 ***”的错误 }};
阅读全文
0 0
- 树的操作-将树变为链表(Flatten Binary Tree to Linked List)
- Flatten Binary Tree to Linked List 将二叉树转换为链表
- Flatten Binary Tree to Linked List 将二叉树转为链表
- Flatten Binary Tree to Linked List 将二叉树转成链表形式
- leetcode 114.Flatten Binary Tree to Linked List (将二叉树转换链表) 解题思路和方法
- leetcode_c++:树: Flatten Binary Tree to Linked List(114)
- LintCode(Flatten Binary Tree to Linked List)翻转二叉树为链表 的变体
- Flatten Binary Tree to Linked List 二叉树变成链表@LeetCode,
- 把树变成链表 Flatten Binary Tree to Linked List
- Flatten Binary Tree to Linked List 二叉树拉伸成链表
- leetcode Flatten Binary Tree to Linked List树
- Flatten Binary Tree to Linked List:二叉树变更结构
- [LeetCode] Flatten Binary Tree to Linked List 将二叉树展开成链表 C++
- LeetCode Flatten Binary Tree to Linked List 将二叉树展开成链表
- 将二叉树拆成链表 Flatten Binary Tree to Linked List
- 5.1.11—二叉树的遍历—Flatten Binary Tree to Linked List
- LeetCode | Flatten Binary Tree to Linked List(二叉树转化成链表)
- LeetCode OJ 之 Flatten Binary Tree to Linked List (把二叉树转换成链表)
- 5-7 六度空间 (30分)
- 线程启动
- git 远程服务器配置了公钥后仍提示输入密码的问题
- Linux软连接和硬链接
- 浅谈 TypeScript 特性
- 树的操作-将树变为链表(Flatten Binary Tree to Linked List)
- 安装Git
- InetAddress.getLocalHost().getHostName()
- POJ 1873 The Fortified Forest 暴力凸包
- 1.ugly number (I,II,super)
- Windows消息大全
- 【人工智能】图像识别之小白天书——验证码篇(1)
- JSP自定义标签库和函数
- 熄灯问题-对于每个问题有若干种状态,求出这个组合若干种状态的组合