【M】【83】【leetcode题解】Flatten Binary Tree to Linked List
来源:互联网 发布:淘宝怎么进卖家中心 编辑:程序博客网 时间:2024/06/10 00:08
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.
Subscribe to see which companies asked this question
两种办法,第一种比较难,被注释了,不是很懂。
第二种方法解释如下:
Note that the problem requires in-place operation.The flatten procedure is like: cut the left child and set to right, the right child is then linked to somewhere behind the left child. Where should it be then? Actually the right child should be linked to the most-right node of the left node. So the algorithm is as follows:
(1) store the right child (we call R)
(2) find the right-most node of left child
(3) set R as the right-most node's right child.
(4) set left child as the right child
(5) set the left child NULL
(6) set current node to current node's right child.
(7) iterate these steps until all node are flattened.
class Solution(object): def __init__(self): self.res = TreeNode(0) def flatten(self, root): if not root: return pre = None while root: if root.left: pre = root.left while pre.right: pre = pre.right pre.right = root.right root.right = root.left root.left = None root = root.right ''' def flatten(self, root): if not root: return self.flatten(root.right) self.flatten(root.left) root.right = self.res.right root.left = None self.res.right = root '''
0 0
- 【M】【83】【leetcode题解】Flatten Binary Tree to Linked List
- LeetCode:M-114. Flatten Binary Tree to Linked List
- LeetCode题解: Flatten Binary Tree to Linked List
- LeetCode 题解(51): 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 Flatten Binary Tree to Linked List C++题解
- 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
- leetcodeRange Sum Query - Immutable
- libxml2的安装及使用
- leetcode Longest Valid Parentheses
- javascript 得到cookie
- C# XML文档
- 【M】【83】【leetcode题解】Flatten Binary Tree to Linked List
- HDU 1248 寒冰王座(完全背包)
- git忽略已经更改的文件
- 用JS阻止事件冒泡
- java泛型(一)、泛型的基本介绍和使用
- 深度学习(二十一)基于FCN的图像语义分割
- Java中Synchronized的用法 (写的非常好,非常清晰)
- leetcode Next Permutation
- Maven中依赖的scope的依赖范围