From 3de7b99fbbfdbb44cfddabf6a697d5c3335bdacb Mon Sep 17 00:00:00 2001 From: Stoycho Kyosev Date: Wed, 26 Oct 2022 15:43:06 +0300 Subject: Add Seminar04 --- Seminar04/reverse-linked-list.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Seminar04/reverse-linked-list.cpp (limited to 'Seminar04/reverse-linked-list.cpp') diff --git a/Seminar04/reverse-linked-list.cpp b/Seminar04/reverse-linked-list.cpp new file mode 100644 index 0000000..486b41e --- /dev/null +++ b/Seminar04/reverse-linked-list.cpp @@ -0,0 +1,25 @@ +#include "linked-list-utils.h" + +template +void reverseLinkedList(LinkedListNode*& ll) { + LinkedListNode* previous = nullptr; + LinkedListNode* next = nullptr; + LinkedListNode* iterate = ll; + + while(iterate) { + next = iterate->next; + iterate->next = previous; + previous = iterate; + iterate = next; + } + + ll = previous; +} + +void example() { + LinkedListNode* ll = new LinkedListNode(1, new LinkedListNode(2, new LinkedListNode(3, new LinkedListNode(4)))); + printLinkedList(ll); + reverseLinkedList(ll); + printLinkedList(ll); + freeList(ll); +} \ No newline at end of file -- cgit v1.3.1-23-gd82d