[leetcode]114. Flatten Binary Tree to Linked List@Java解题报告
来源:互联网 发布:手机淘宝5.2.8版本 编辑:程序博客网 时间:2024/06/05 22:43
https://leetcode.com/problems/flatten-binary-tree-to-linked-list/description/
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.
Hints:
If you notice carefully in the flattened tree, each node's right child points to the next node of a pre-order traversal.
本题有递归和循环解法
package go.jacob.day808;import java.util.ArrayList;import java.util.List;import java.util.Stack;/** * 114. Flatten Binary Tree to Linked List * @author Jacob * */public class Demo4 {/* * 解法一 * 递归解法 * 从尾到头逆序处理 */TreeNode pre=null;public void flatten(TreeNode root) {if(root==null)return ;flatten(root.right);flatten(root.left);root.left=null;root.right=pre;pre=root;}/* * 解法二:循环求解 */public void flatten_1(TreeNode root) {if(root==null)return;Stack<TreeNode> stack=new Stack<TreeNode>();stack.push(root);while(!stack.isEmpty()){TreeNode node=stack.pop();if(node.right!=null)stack.push(node.right);if(node.left!=null)stack.push(node.left);if(!stack.isEmpty())node.right=stack.peek();node.left=null;}}/* * 低效率解法 */public void flatten_2(TreeNode root) {if(root==null)return;List<TreeNode> list=new ArrayList<TreeNode>();Stack<TreeNode> stack=new Stack<TreeNode>();stack.push(root);TreeNode node=null;while(!stack.isEmpty()||node!=null){if(node==null){node=stack.pop();node=node.right;}else{stack.push(node);list.add(node);node=node.left;}}TreeNode node1=null;TreeNode node2=null;for(int i=0;i<list.size()-1;i++){node1=list.get(i);node2=list.get(i+1);node1.left=null;node1.right=node2;}node2.left=null;node2.right=null;}}
阅读全文
0 0
- [leetcode] 114. Flatten Binary Tree to Linked List 解题报告
- [Leetcode] 114. Flatten Binary Tree to Linked List 解题报告
- [leetcode]114. Flatten Binary Tree to Linked List@Java解题报告
- 【LeetCode】Flatten Binary Tree to Linked List 解题报告
- LeetCode(114) Flatten Binary Tree to Linked List解题报告
- [LeetCode] Flatten Binary Tree to Linked List 解题报告
- 【LeetCode】Flatten Binary Tree to Linked List 解题报告
- Leetcode 114. Flatten Binary Tree to Linked List 二叉树到链表 解题报告
- 【leetcode】114. Flatten Binary Tree to Linked List【java】
- leecode 解题总结:114. 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
- python爬虫遇到换行
- 文件编译初学习
- javascript 字符串
- Linux学习笔记02 文件权限管理练习
- 大数据的冷水分析
- [leetcode]114. Flatten Binary Tree to Linked List@Java解题报告
- leetcode--Simplify Path
- 几种常用的排序算法(一)--python实现
- c语言关键字
- OracleWeblogic12C安装教程和在IDEA部署WebLogic12C项目分享经验
- 轻松理解汉诺塔问题(图解java描述)
- str与repr的区别
- C#中的一个JSON库-LitJSON简介
- Springboot基础篇 (一)启动方式