Repository navigation
Expand file tree
/
Copy pathBinaryTreeNode.java
More file actions
126 lines (111 loc) · 5.1 KB
/
Copy pathBinaryTreeNode.java
File metadata and controls
126 lines (111 loc) · 5.1 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/**
* Sanqiang Zhao Www.131X.Com Dec 17, 2012
*/
package Util;
public class BinaryTreeNode<T> {
public T Data;
public BinaryTreeNode<T> Left;
public BinaryTreeNode<T> Right;
public BinaryTreeNode<T> Parent; //Optional
public BinaryTreeNode(T _data) {
this.Data = _data;
this.Left = null;
this.Right = null;
}
public BinaryTreeNode(T _data, BinaryTreeNode<T> _left, BinaryTreeNode<T> _right) {
this.Data = _data;
this.Left = _left;
this.Right = _right;
_left = this;
_right = this;
}
public BinaryTreeNode(T _data, BinaryTreeNode<T> _left, BinaryTreeNode<T> _right, BinaryTreeNode<T> _parent) {
this.Data = _data;
this.Left = _left;
this.Right = _right;
_left = this;
_right = this;
this.Parent = _parent;
}
public int getHeight() {
return getHeightHelper(this);
}
private int getHeightHelper(BinaryTreeNode<T> node) {
if (node == null) {
return 0;
}
int l = getHeightHelper(node.Left);
int r = getHeightHelper(node.Right);
return Math.max(l, r) + 1;
}
public static BinaryTreeNode<Integer> getSampleTree() {
BinaryTreeNode<Integer> btn2 = new BinaryTreeNode<Integer>(2);
BinaryTreeNode<Integer> btn7 = new BinaryTreeNode<Integer>(7);
BinaryTreeNode<Integer> btn5 = new BinaryTreeNode<Integer>(5, btn2, btn7);
BinaryTreeNode<Integer> btn12 = new BinaryTreeNode<Integer>(12);
BinaryTreeNode<Integer> btn17 = new BinaryTreeNode<Integer>(17);
BinaryTreeNode<Integer> btn15 = new BinaryTreeNode<Integer>(15, btn12, btn17);
BinaryTreeNode<Integer> btn10 = new BinaryTreeNode<Integer>(10, btn5, btn15);
return btn10;
}
public static BinaryTreeNode<Integer> getSampleTree2() {
BinaryTreeNode<Integer> btn2 = new BinaryTreeNode<Integer>(3);
BinaryTreeNode<Integer> btn7 = new BinaryTreeNode<Integer>(3);
BinaryTreeNode<Integer> btn5 = new BinaryTreeNode<Integer>(2, btn2, btn7);
BinaryTreeNode<Integer> btn12 = new BinaryTreeNode<Integer>(4);
BinaryTreeNode<Integer> btn17 = new BinaryTreeNode<Integer>(4);
BinaryTreeNode<Integer> btn15 = new BinaryTreeNode<Integer>(2, btn12, btn17);
BinaryTreeNode<Integer> btn10 = new BinaryTreeNode<Integer>(1, btn5, btn15);
return btn10;
}
public static BinaryTreeNode<Integer> getSampleTree3() {
BinaryTreeNode<Integer> btn2 = new BinaryTreeNode<Integer>(3);
BinaryTreeNode<Integer> btn5 = new BinaryTreeNode<Integer>(2, btn2, null);
BinaryTreeNode<Integer> btn10 = new BinaryTreeNode<Integer>(1, btn5, null);
return btn10;
}
public static BinaryTreeNode<Integer> getSampleTree4() {
BinaryTreeNode<Integer> btn2 = new BinaryTreeNode<Integer>(10);
BinaryTreeNode<Integer> btn7 = new BinaryTreeNode<Integer>(10);
BinaryTreeNode<Integer> btn5 = new BinaryTreeNode<Integer>(10, btn2, btn7);
BinaryTreeNode<Integer> btn12 = new BinaryTreeNode<Integer>(12);
BinaryTreeNode<Integer> btn17 = new BinaryTreeNode<Integer>(17);
BinaryTreeNode<Integer> btn15 = new BinaryTreeNode<Integer>(15, btn12, btn17);
BinaryTreeNode<Integer> btn10 = new BinaryTreeNode<Integer>(10, btn5, btn15);
return btn10;
}
public static BinaryTreeNode<Character> getCharSampleTree() {
BinaryTreeNode<Character> btn2 = new BinaryTreeNode<Character>('1');
BinaryTreeNode<Character> btn7 = new BinaryTreeNode<Character>('2');
BinaryTreeNode<Character> btn5 = new BinaryTreeNode<Character>('+', btn2, btn7);
BinaryTreeNode<Character> btn12 = new BinaryTreeNode<Character>('4');
BinaryTreeNode<Character> btn17 = new BinaryTreeNode<Character>('3');
BinaryTreeNode<Character> btn15 = new BinaryTreeNode<Character>('+', btn12, btn17);
BinaryTreeNode<Character> btn10 = new BinaryTreeNode<Character>('*', btn5, btn15);
return btn10;
}
public static BinaryTreeNode<Integer> getSampleTree5() {
BinaryTreeNode<Integer> btn2 = new BinaryTreeNode<Integer>(10);
BinaryTreeNode<Integer> btn7 = new BinaryTreeNode<Integer>(10);
BinaryTreeNode<Integer> btn5 = new BinaryTreeNode<Integer>(10, btn2, btn7);
BinaryTreeNode<Integer> btn12 = new BinaryTreeNode<Integer>(12);
BinaryTreeNode<Integer> btn17 = new BinaryTreeNode<Integer>(17);
BinaryTreeNode<Integer> btn15 = new BinaryTreeNode<Integer>(15, btn12, btn17);
BinaryTreeNode<Integer> btn10 = new BinaryTreeNode<Integer>(10, btn5, btn15);
btn2.Left = new BinaryTreeNode<Integer>(1);
//btn7.Left = new BinaryTreeNode<Integer>(1);
return btn10;
}
private static void ReverseOrder(BinaryTreeNode<Integer> root) {
if (root == null) {
return;
}
ReverseOrder(root.Right);
System.out.println(root.Data);
ReverseOrder(root.Left);
}
public static void main(String[] args) {
BinaryTreeNode<Integer> sample = getSampleTree();
ReverseOrder(sample);
}
}