Difference between revisions of "TADM2E 3.20"
From Algorithm Wiki
(Recovering wiki) |
(Recovering wiki) |
||
Line 3: | Line 3: | ||
Node *middle=top, *cur=top; | Node *middle=top, *cur=top; | ||
while (cur) { | while (cur) { | ||
− | cur = cur- | + | cur = cur->next; |
++k; | ++k; | ||
if (k%2 == 0) | if (k%2 == 0) | ||
− | middle = middle- | + | middle = middle->next; |
} | } | ||
return middle; | return middle; |
Revision as of 18:22, 11 September 2014
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.]