leetcode 114. Flatten Binary Tree to Linked List 扁平化二叉树+前序遍历
来源:互联网 发布:php 探针 不支持mssql 编辑:程序博客网 时间:2024/06/05 11:31
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
click to show hints.
这道题很简答,就是做一次中序遍历,然后把它做回扁平化就可以了。
代码如下;
import java.util.ArrayList;import java.util.List;/*class TreeNode{ int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }}*/public class Solution { List<TreeNode> res=new ArrayList<TreeNode>(); public void flatten(TreeNode root) { if(root==null) return ; preOrder(root); for(int i=0;i<res.size()-1;i++) { TreeNode one=res.get(i); TreeNode two=res.get(i+1); one.left=two.left=null; one.right=two; } TreeNode last=res.get(res.size()-1); last.left=last.right=null; } void preOrder(TreeNode root) { if(root!=null) { res.add(root); preOrder(root.left); preOrder(root.right); } }}
下面是C++的做法,就是先做一个二叉树的前序遍历,然后按照要求去做就可以了
代码如下:
#include <iostream>#include <vector>using namespace std;/*struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) {}};*/class Solution {public: vector<TreeNode*> one; void flatten(TreeNode* root) { getAll(root); if (one.size() >= 2) { for (int i = 1; i < one.size(); i++) { one[i - 1]->right = one[i]; one[i - 1]->left = NULL; } one[one.size() - 1]->left = NULL; one[one.size() - 1]->right = NULL; } else return; } void getAll(TreeNode* root) { if (root == NULL) return; else { one.push_back(root); getAll(root->left); getAll(root->right); } }};
阅读全文
0 0
- leetcode 114. Flatten Binary Tree to Linked List 扁平化二叉树+前序遍历
- lintcode flatten-binary-tree-to-linked-list 将二叉树拆成链表 前序扁平化 中序扁平化
- 【二叉树&前序遍历】Flatten Binary Tree to Linked List
- LeetCode—Binary Tree Right Side View 二叉树层序遍历变形,Flatten Binary Tree to Linked List前序遍历变形
- 114Flatten Binary Tree to Linked List 二叉树到单链表的扁平化处理
- 二叉树遍历应用114. Flatten Binary Tree to Linked List
- LeetCode 114. Flatten Binary Tree to Linked List(摊平二叉树)
- LeetCode 114. Flatten Binary Tree to Linked List 拉平二叉树 Python Solution
- Flatten Binary Tree to Linked List (二叉树转前序链表)【leetcode】
- 【leetcode 二叉树摊直】Flatten Binary Tree to Linked List
- [LeetCode] flatten binary tree 扁平化二叉树
- 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
- oracle中的RANK()、ROW_NUMBER()、DENSE_RANK()区别和使用
- 1140鸡蛋栈
- LMS100-1000激光雷达学习(二)
- struts2原理,标签及干净Struts2小例子
- MyBatis Generator(MBG)扩展MyBatis生成器
- leetcode 114. Flatten Binary Tree to Linked List 扁平化二叉树+前序遍历
- 客户端需要使用到的素材网站
- 服务器之间互联免密登录切换
- Java查找一维数组中出现次数最多的值及其出现次数
- c++字符串函数
- ORA-00942: table or view does not exist
- java多线程 等待多个并发事件的完成【转】
- Action如何接收jsp页面form表单提交的数据?
- arm-linux开发板修改时区