Leetcode-114. Flatten Binary Tree to Linked List
来源:互联网 发布:Js写table 编辑:程序博客网 时间:2024/06/06 14:09
前言:为了后续的实习面试,开始疯狂刷题,非常欢迎志同道合的朋友一起交流。因为时间比较紧张,目前的规划是先过一遍,写出能想到的最优算法,第二遍再考虑最优或者较优的方法。如有错误欢迎指正。博主首发CSDN,mcf171专栏。
博客链接:mcf171的博客
——————————————————————————————
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.
这个题目比较醉,一开始没看题,以为是广度优先压缩,结果是先序遍历的压缩。Your runtime beats 3.93% of java submissions.public class Solution { public void flatten(TreeNode root) {if(root != null){Stack<TreeNode> stack = new Stack<TreeNode>();if(root.right != null) stack.push(root.right);if(root.left != null) stack.push(root.left);constructure(root,stack);} } public void constructure(TreeNode root, Stack<TreeNode> stack){if(!stack.empty()){TreeNode right = stack.pop();root.right = right;root.left = null;if(right.right != null) stack.push(right.right);if(right.left != null) stack.push(right.left);root = root.right;constructure(root,stack);} }}
感觉效率略低,想了想是不是因为引入stack的原因导致过多的入栈出栈。Your runtime beats 28.48% of java submissions.
public class Solution { public void flatten(TreeNode root) {TreeNode head = root; if(root != null){TreeNode right = root.right;head = flatten(root.left,head);head = flatten(right,head);} } public TreeNode flatten(TreeNode root, TreeNode pre){if(root != null){pre.right = root;pre.left = null;pre = pre.right;TreeNode right = root.right;pre = flatten(root.left, pre);pre = flatten(right,pre);}return pre; }}
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
- 即点即改源代码(iwebshop内使用)
- python中eval和exec函数的应用
- LibreOffice 5.3即将发布!
- python3 and or
- 使用python求解特征值与特征向量
- Leetcode-114. Flatten Binary Tree to Linked List
- C语言——查找二叉树
- 挖金矿
- 跨域解决方案大全
- mysql导入导出
- 从汇编的角度看待const与#define
- JavaScript中的原型继承
- sqlserver freetds配置在 linux上
- 如何用IDEA一步一步开发WebService服务器端