Leetcode 114. Flatten Binary Tree to Linked List
来源:互联网 发布:魔塔盒子获取数据失败 编辑:程序博客网 时间:2024/06/07 18:24
Question
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
Code
public void flatten(TreeNode root) { if (root == null) { return; } TreeNode p = root; Stack<TreeNode> stacks = new Stack<>(); if (root.right != null) { stacks.push(root.right); } if (root.left != null) { stacks.push(root.left); } while (!stacks.empty()) { TreeNode node = stacks.pop(); p.right = node; p.left = null; p = p.right; if (node.right != null) { stacks.push(node.right); } if (node.left != null) { stacks.push(node.left); } } }
/** * 递归的方式解决 * * @param root * @return */ // return : the tail of the list. public TreeNode dfs(TreeNode root) { if (root == null) { return null; } TreeNode left = root.left; TreeNode right = root.right; // Init the root. root.left = null; root.right = null; TreeNode tail = root; // connect the left tree. if (left != null) { tail.right = left; tail = dfs(left); } // connect the right tree. if (right != null) { tail.right = right; tail = dfs(right); } return tail; }
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
- Xcode的一些常用配置
- 通过Gradle配置指定sdk路径
- 第七届蓝桥杯C语言C组-(自己懂的题目)
- Android合理的使用闪屏
- [BZOJ2212][Poi2011]Tree Rotations
- Leetcode 114. Flatten Binary Tree to Linked List
- 长方柱类
- 结构体和共用体
- 共同学习Java源码--常用数据类型--String(四)
- ubuntu下sublime-text3无法输入中文的解决办法
- 依赖注入
- 如何成为一个合格的 Java 程序员
- bzoj 4380: [POI2015]Myjnie 动态规划
- JVM内存