Website Summary Files Commits Branches @commit @diff @stats
path: root / Seminar04 / reverse-linked-list.cpp
blob: 486b41e43235d9a963e8cbda3c094016c508e50f (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
#include "linked-list-utils.h"

template<class T>
void reverseLinkedList(LinkedListNode<T>*& ll) {
    LinkedListNode<T>* previous = nullptr;
    LinkedListNode<T>* next = nullptr;
    LinkedListNode<T>* iterate = ll;

    while(iterate) {
        next = iterate->next;
        iterate->next = previous;
        previous = iterate;
        iterate = next;
    }

    ll = previous;
}

void example() {
    LinkedListNode<int>* ll = new LinkedListNode(1, new LinkedListNode(2, new LinkedListNode(3, new LinkedListNode(4))));
    printLinkedList(ll);
    reverseLinkedList(ll);
    printLinkedList(ll);
    freeList(ll);
}