From ac43d43d4b9a67b47b02648fc1bb0153191673e9 Mon Sep 17 00:00:00 2001 From: Stoycho Kyosev <68247567+stoychoX@users.noreply.github.com> Date: Thu, 10 Nov 2022 00:46:45 +0200 Subject: Update and rename Linked-List-Perm.cpp to Linked-List-Palindrome.cpp --- Seminar06/Linked-List-Palindrome.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Seminar06/Linked-List-Palindrome.cpp (limited to 'Seminar06/Linked-List-Palindrome.cpp') diff --git a/Seminar06/Linked-List-Palindrome.cpp b/Seminar06/Linked-List-Palindrome.cpp new file mode 100644 index 0000000..8a627a9 --- /dev/null +++ b/Seminar06/Linked-List-Palindrome.cpp @@ -0,0 +1,28 @@ +#include"../Seminar04/linked-list-utils.h" + +bool isLinkedListPalRec(const LinkedListNode*& begin, const LinkedListNode* end) { + if(end == nullptr) + return true; + + bool res = isLinkedListPalRec(begin, end->next) && (begin->data == end->data); + + begin = begin->next; + return res; +} + +template +bool isLinkedListPal(const LinkedListNode* ll) { + if(ll == nullptr) + return true; + + const LinkedListNode* begin = ll; + const LinkedListNode* end = ll; + + return isLinkedListPalRec(begin, end); +} + +int main() { + LinkedListNode* ll = new LinkedListNode(0, new LinkedListNode(1, new LinkedListNode(1))); + + std::cout << isLinkedListPal(ll); +} -- cgit v1.3.1-23-gd82d