[LC] 114. Flatten Binary Tree to Linked List

Posted xuanlu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LC] 114. Flatten Binary Tree to Linked List相关的知识,希望对你有一定的参考价值。

Given a binary tree, flatten it to a linked list in-place.

For example, given the following tree:

    1
   /   2   5
 /    3   4   6

The flattened tree should look like:

1
   2
       3
           4
               5
                   6
 1 # Definition for a binary tree node.
 2 # class TreeNode(object):
 3 #     def __init__(self, x):
 4 #         self.val = x
 5 #         self.left = None
 6 #         self.right = None
 7 
 8 class Solution(object):
 9     def flatten(self, root):
10         """
11         :type root: TreeNode
12         :rtype: None Do not return anything, modify root in-place instead.
13         """
14         self.prev = None
15         def dfs(root):
16             if root is None:
17                 return None
18             # reverse preOrder traveral
19             # use pre_node to track the previous node to connect as current right
20             dfs(root.right)
21             dfs(root.left)
22             root.right = self.prev
23             root.left = None
24             self.prev = root
25         dfs(root)

 

以上是关于[LC] 114. Flatten Binary Tree to Linked List的主要内容,如果未能解决你的问题,请参考以下文章