@@ -70,6 +70,7 @@ ListNode* middleNode(ListNode* head) {
70
70
slowptr = slowptr->next ;
71
71
fastptr = fastptr->next ->next ;
72
72
}
73
+
73
74
return (fastptr->next ) ? slowptr->next : slowptr;
74
75
}
75
76
} // namespace median_search2
@@ -80,51 +81,57 @@ ListNode* middleNode(ListNode* head) {
80
81
* @returns void
81
82
*/
82
83
static void test () {
83
- auto * head = new ListNode;
84
- head ->val = 1 ;
84
+ auto * head1 = new ListNode;
85
+ head1 ->val = 1 ;
85
86
86
- ListNode* temp1 = head ;
87
+ ListNode* temp = head1 ;
87
88
for (int i = 1 ; i < 6 ; ++i) {
88
- auto temp2 = new ListNode;
89
- temp2 ->val = i;
89
+ auto * temp1 = new ListNode;
90
+ temp1 ->val = i;
90
91
91
- temp1 ->next = temp2 ;
92
- temp1 = temp2 ;
92
+ temp ->next = temp1 ;
93
+ temp = temp1 ;
93
94
}
94
95
95
- ListNode* median = search::median_search2::middleNode (head );
96
+ ListNode* median = search::median_search2::middleNode (head1 );
96
97
assert (3 == median->val ); // 3 is the value of the median node.
97
98
std::cout << " test case:1 passed\n " ;
98
-
99
+
99
100
// Clean up
100
- while (head ) {
101
- ListNode* t = head ;
102
- head = head ->next ;
101
+ while (head1 ) {
102
+ ListNode* t = head1 ;
103
+ head1 = head1 ->next ;
103
104
delete t;
104
105
}
105
-
106
- head = new ListNode;
107
- head->val = 1 ;
108
-
109
- temp1 = head;
106
+ delete head1;
107
+ delete temp;
108
+
109
+ // Test case # 2
110
+ auto * head2 = new ListNode;
111
+ head2->val = 1 ;
112
+
113
+ ListNode* temp2 = head2;
110
114
for (int i = 1 ; i < 7 ; ++i) {
111
- auto temp2 = new ListNode;
112
- temp2 ->val = i;
115
+ auto temp3 = new ListNode;
116
+ temp3 ->val = i;
113
117
114
- temp1 ->next = temp2 ;
115
- temp1 = temp2 ;
118
+ temp2 ->next = temp3 ;
119
+ temp2 = temp3 ;
116
120
}
117
121
118
- median = search::median_search2::middleNode (head );
119
- assert (4 == median->val ); // 3 is the value of the median node.
122
+ median = search::median_search2::middleNode (head2 );
123
+ assert (4 == median->val ); // 4 is the value of the median node.
120
124
std::cout << " test case:1 passed\n " ;
121
125
122
126
// Clean up
123
- while (head ) {
124
- ListNode* t = head ;
125
- head = head ->next ;
127
+ while (head2 ) {
128
+ ListNode* t = head2 ;
129
+ head2 = head2 ->next ;
126
130
delete t;
127
131
}
132
+ delete head2;
133
+ delete temp2;
134
+
128
135
std::cout << " test case:2 passed\n " ;
129
136
std::cout << " --All tests passed--\n " ;
130
137
}
0 commit comments