Skip to content

Commit fa27006

Browse files
authored
1
1
1 parent ac83354 commit fa27006

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed

2018.12.09-leetcode106/fish.md

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
```
2+
public class Solution {
3+
public static TreeNode binaryTree(TreeNode node, List<Integer> aftOrder, List<Integer> inOrder) {
4+
if (!aftOrder.isEmpty()){
5+
int size = aftOrder.size();
6+
Integer val = aftOrder.get(aftOrder.size() - 1);
7+
int index = inOrder.indexOf(val);
8+
9+
List<Integer> leftAftOrder = aftOrder.subList(0, index);
10+
List<Integer> rightAftOrder = aftOrder.subList(index, size - 1);
11+
12+
List<Integer> leftInOrder = inOrder.subList(0, index);
13+
List<Integer> rightInOrder = inOrder.subList(index + 1, size);
14+
15+
if (node == null) {
16+
node = new TreeNode(val, null, null);
17+
}
18+
19+
TreeNode leftNode = null, rightNode = null;
20+
if (!leftAftOrder.isEmpty()){
21+
leftNode = new TreeNode(leftAftOrder.get(leftAftOrder.size() - 1), null, null);
22+
node.setLeft(leftNode);
23+
}
24+
if (!rightAftOrder.isEmpty()){
25+
rightNode = new TreeNode(rightAftOrder.get(rightAftOrder.size() - 1), null, null);
26+
node.setRight(rightNode);
27+
}
28+
29+
binaryTree(leftNode, leftAftOrder, leftInOrder);
30+
binaryTree(rightNode, rightAftOrder, rightInOrder);
31+
}
32+
return node;
33+
}
34+
35+
public static void main(String[] args) {
36+
List<Integer> aftOrder = new ArrayList<>();
37+
aftOrder.add(22);
38+
aftOrder.add(16);
39+
aftOrder.add(9);
40+
aftOrder.add(15);
41+
aftOrder.add(7);
42+
aftOrder.add(20);
43+
aftOrder.add(3);
44+
List<Integer> inOrder = new ArrayList<>();
45+
inOrder.add(22);
46+
inOrder.add(9);
47+
inOrder.add(16);
48+
inOrder.add(3);
49+
inOrder.add(15);
50+
inOrder.add(20);
51+
inOrder.add(7);
52+
System.out.println(binaryTree(null, aftOrder, inOrder));
53+
}
54+
}
55+
56+
@Data
57+
@AllArgsConstructor
58+
@NoArgsConstructor
59+
@ToString
60+
class TreeNode {
61+
private int val;
62+
private TreeNode left;
63+
private TreeNode right;
64+
}

0 commit comments

Comments
 (0)