@@ -23,7 +23,10 @@ public static List<Integer> findTreeCenters(List<List<Integer>> tree) {
23
23
for (int i = 0 ; i < n ; i ++) {
24
24
List <Integer > edges = tree .get (i );
25
25
degrees [i ] = edges .size ();
26
- if (degrees [i ] <= 1 ) leaves .add (i );
26
+ if (degrees [i ] <= 1 ) {
27
+ leaves .add (i );
28
+ degrees [i ] = 0 ;
29
+ }
27
30
}
28
31
29
32
int processedLeafs = leaves .size ();
@@ -39,6 +42,7 @@ public static List<Integer> findTreeCenters(List<List<Integer>> tree) {
39
42
newLeaves .add (neighbor );
40
43
}
41
44
}
45
+ degrees [node ] = 0 ;
42
46
}
43
47
processedLeafs += newLeaves .size ();
44
48
leaves = newLeaves ;
@@ -74,29 +78,29 @@ public static void main(String[] args) {
74
78
addUndirectedEdge (graph , 6 , 8 );
75
79
76
80
// Centers are 2
77
- System .out .println (findTreeCenters (graph ));
81
+ System .out .println (findTreeCenters (graph ) + " \n " );
78
82
79
83
// Centers are 0
80
84
List <List <Integer >> graph2 = createEmptyTree (1 );
81
- System .out .println (findTreeCenters (graph2 ));
85
+ System .out .println (findTreeCenters (graph2 ) + " \n " );
82
86
83
87
// Centers are 0,1
84
88
List <List <Integer >> graph3 = createEmptyTree (2 );
85
89
addUndirectedEdge (graph3 , 0 , 1 );
86
- System .out .println (findTreeCenters (graph3 ));
90
+ System .out .println (findTreeCenters (graph3 ) + " \n " );
87
91
88
92
// Centers are 1
89
93
List <List <Integer >> graph4 = createEmptyTree (3 );
90
94
addUndirectedEdge (graph4 , 0 , 1 );
91
95
addUndirectedEdge (graph4 , 1 , 2 );
92
- System .out .println (findTreeCenters (graph4 ));
96
+ System .out .println (findTreeCenters (graph4 ) + " \n " );
93
97
94
98
// Centers are 1,2
95
99
List <List <Integer >> graph5 = createEmptyTree (4 );
96
100
addUndirectedEdge (graph5 , 0 , 1 );
97
101
addUndirectedEdge (graph5 , 1 , 2 );
98
102
addUndirectedEdge (graph5 , 2 , 3 );
99
- System .out .println (findTreeCenters (graph5 ));
103
+ System .out .println (findTreeCenters (graph5 ) + " \n " );
100
104
101
105
// Centers are 2,3
102
106
List <List <Integer >> graph6 = createEmptyTree (7 );
@@ -106,6 +110,6 @@ public static void main(String[] args) {
106
110
addUndirectedEdge (graph6 , 3 , 4 );
107
111
addUndirectedEdge (graph6 , 4 , 5 );
108
112
addUndirectedEdge (graph6 , 4 , 6 );
109
- System .out .println (findTreeCenters (graph6 ));
113
+ System .out .println (findTreeCenters (graph6 ) + " \n " );
110
114
}
111
115
}
0 commit comments