blob: dc587ba51530cdda8ff5134bc95dfea975ac67d8 (
plain) (
blame)
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
|
#include"linked-list-utils.h"
template<class T>
LinkedListNode<T>* findMiddle(LinkedListNode<T>* ll) {
LinkedListNode<T>* fast = ll;
LinkedListNode<T>* slow = ll;
while(fast && fast->next) {
fast = fast->next->next;
slow = slow->next;
}
return slow;
}
void example() {
LinkedListNode<int>* ll = new LinkedListNode(1, new LinkedListNode(2, new LinkedListNode(3, new LinkedListNode(4))));
LinkedListNode<int>* lls = new LinkedListNode(1, new LinkedListNode(2, new LinkedListNode(3, new LinkedListNode(4, new LinkedListNode(5)))));
LinkedListNode<int>* firstMiddle = findMiddle(ll);
LinkedListNode<int>* secondMiddle = findMiddle(lls);
std::cout << firstMiddle->data << " " << secondMiddle->data;
freeList(ll);
freeList(lls);
}
|