From 0ada48f859ab59acdbd67e67e887026cacc29e33 Mon Sep 17 00:00:00 2001 From: Stoycho Kyosev Date: Wed, 9 Nov 2022 22:56:24 +0200 Subject: add Seminar06 --- Seminar06/Linked-List-Perm.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Seminar06/Linked-List-Perm.cpp (limited to 'Seminar06/Linked-List-Perm.cpp') diff --git a/Seminar06/Linked-List-Perm.cpp b/Seminar06/Linked-List-Perm.cpp new file mode 100644 index 0000000..ee2b1e4 --- /dev/null +++ b/Seminar06/Linked-List-Perm.cpp @@ -0,0 +1,28 @@ +#include"../Seminar04/linked-list-utils.h" + +bool isLinkedListPermRec(const LinkedListNode*& begin, const LinkedListNode* end) { + if(end == nullptr) + return true; + + bool res = isLinkedListPermRec(begin, end->next) && (begin->data == end->data); + + begin = begin->next; + return res; +} + +template +bool isLinkedListPerm(const LinkedListNode* ll) { + if(ll == nullptr) + return true; + + const LinkedListNode* begin = ll; + const LinkedListNode* end = ll; + + return isLinkedListPermRec(begin, end); +} + +int main() { + LinkedListNode* ll = new LinkedListNode(0, new LinkedListNode(1, new LinkedListNode(1))); + + std::cout << isLinkedListPerm(ll); +} \ No newline at end of file -- cgit v1.3.1-23-gd82d