114. Flatten Binary Tree to Linked List
Problem description:
Given a binary tree, flatten it to a linked list in-place.
For example, given the following tree:1
2
3
4
5 1
/ \
2 5
/ \ \
3 4 6
The flattened tree should look like:1
2
3
4
5
6
7
8
9
10
111
\
2
\
3
\
4
\
5
\
6
Solution:
Recursive solution:
Use a global variable to store a previous node, and traverse the tree with post-order traversal.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21prev= NULL
1
/ \
2 3
prev= 3
1
/
2
\
3
prev= 2
1
\
2
\
3
1 | /** |
time complexity: $O()$
space complexity: $O()$
reference: