-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConstructCore.java
More file actions
70 lines (63 loc) · 1.62 KB
/
Copy pathConstructCore.java
File metadata and controls
70 lines (63 loc) · 1.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package com.wg.offerAlgorithm;
import java.util.Arrays;
public class ConstructCore {
private class Node{
private int data;
private Node left;
private Node right;
public Node(int data){
this.data=data;
this.left=null;
this.right=null;
}
}
public Node constructCore(int[]preOrder,int[]inOrder){
if(preOrder==null||inOrder==null){
return null;
}
// if(preOrder.length!=inOrder.length){
//
// }
Node root=null;
for(int i=0;i<inOrder.length;i++){
if(inOrder[i]==preOrder[0]){
root = new Node(inOrder[i]);
//×óÓÒ½Úµã+
root.left=constructCore(Arrays.copyOfRange(preOrder, 1, i+1),Arrays.copyOfRange(inOrder, 0, i));
root.right=constructCore(Arrays.copyOfRange(preOrder, i+1, preOrder.length),Arrays.copyOfRange(inOrder,i+1,inOrder.length));
}
}
return root;
}
public void inOrder(Node node){
if(node != null){
inOrder(node.left);
System.out.print(node.data+" ");
inOrder(node.right);
}
}
/**
* ºóÐò±éÀú
* @param node
*/
public void postOrder(Node node){
if(node != null){
postOrder(node.left);
postOrder(node.right);
System.out.print(node.data+" ");
}
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ConstructCore test=new ConstructCore();
int[] pre={1,2,4,7,3,5,6,8};
int[] in={4,7,2,1,5,3,8,6};
Node root=test.constructCore(pre,in);
// System.out.println(root.data);
//test.postOrder(root);
// System.out.println(root.left.data);
}
}