Skip to content

Commit 3aecd08

Browse files
committed
提交114
1 parent 5eee073 commit 3aecd08

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package com.mistray.tree;
2+
3+
import java.util.ArrayList;
4+
import java.util.LinkedList;
5+
6+
/**
7+
* @author ZJY(MistRay)
8+
* @Project algorithm-study
9+
* @Package com.mistray.tree
10+
* @create 2020年03月05日 14:02
11+
* @Desc
12+
*/
13+
public class FlattenBinaryTreeToLinkedList114 {
14+
15+
public void flatten(TreeNode root) {
16+
if (root == null) {
17+
return;
18+
}
19+
LinkedList<TreeNode> list = new LinkedList<>();
20+
dsf(root, list);
21+
TreeNode head = list.removeFirst();
22+
head.left = null;
23+
while (list.size() > 0) {
24+
TreeNode cur = list.removeFirst();
25+
cur.left = null;
26+
head.right = cur;
27+
head = cur;
28+
}
29+
30+
}
31+
32+
public void flatten2(TreeNode root) {
33+
contrary(root);
34+
}
35+
36+
37+
TreeNode pre = null;
38+
39+
public void contrary(TreeNode root) {
40+
if (root == null) {
41+
return;
42+
}
43+
contrary(root.right);
44+
contrary(root.left);
45+
root.left = null;
46+
root.right = pre;
47+
pre = root;
48+
}
49+
50+
51+
public void dsf(TreeNode node, LinkedList<TreeNode> list) {
52+
if (node == null) {
53+
return;
54+
}
55+
list.add(node);
56+
dsf(node.left, list);
57+
dsf(node.right, list);
58+
}
59+
60+
}

0 commit comments

Comments
 (0)