Difference between revisions of "TADM2E 3.20"
From Algorithm Wiki
(Recovering wiki) |
m |
||
| Line 1: | Line 1: | ||
| − | Node* find_middle(Node *top) { | + | Node* find_middle(Node *top) { |
int k=0; | int k=0; | ||
Node *middle=top, *cur=top; | Node *middle=top, *cur=top; | ||
Latest revision as of 10:30, 4 May 2018
Node* find_middle(Node *top) {
int k=0;
Node *middle=top, *cur=top;
while (cur) {
cur = cur->next;
++k;
if (k%2 == 0)
middle = middle->next;
}
return middle;
}
[Also, can be done by improving one pointer two and one pointer one node(s) at a time. When the two node pointer reaches end, the one node pointer is in the middle.]