【LeetCode】Flatten Binary Tree to Linked List 解题报告
来源:互联网 发布:怎么获取sql中的别名 编辑:程序博客网 时间:2024/06/05 12:42
【题目】
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
题意是把一棵二叉树按照先序遍历的方式放到一棵只有右支树的二叉树中。
最开始想的思路是递归发,后来发现这样会溢出。
然后就用一个栈和一个队列来实现,队列用来存储先序遍历的结果,栈用于先序遍历。
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public void flatten(TreeNode root) { if (root == null) return; Stack<TreeNode> stack = new Stack<TreeNode>(); Queue<TreeNode> queue = new LinkedList<TreeNode>(); stack.push(root); queue.add(root); while (!stack.isEmpty()) { TreeNode top = stack.peek(); if (top.left != null) { queue.add(top.left); stack.push(top.left); top.left = null; } else if (top.right != null) { queue.add(top.right); stack.push(top.right); top.right = null; } else { //top.left == null && top.right == null stack.pop(); } } TreeNode node = queue.poll(); while (!queue.isEmpty()) { node.right = queue.poll(); node = node.right; } }}
0 0
- 【LeetCode】Flatten Binary Tree to Linked List 解题报告
- LeetCode(114) 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 二叉树到链表 解题报告
- [leetcode]114. Flatten Binary Tree to Linked List@Java解题报告
- 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
- kinect depth openframeworks
- Java -- Tcp Socket的使用
- 乌镇论剑:张朝阳的四张牌=两横两纵
- 原生App切图的那些事儿
- 操作系统实验1-基于dos实现优先级的线程调度
- 【LeetCode】Flatten Binary Tree to Linked List 解题报告
- poj 3177
- 第十三周项目一 数组的大折腾(4)
- 第13周项目4 数组的排序(1)
- 使用xilinx ip core FIFO First- World First-Through (FWFT)模式的注意事项
- 第13周项目3-成绩处理函数版
- 暗含玄机,诺基亚的品牌回归之路!
- 张爱玲经典爱情语录
- 13周项目五。。。统计A的个数