diff options
add Seminar06
1 files changed, 28 insertions, 0 deletions
| -rw-r--r-- | Seminar06/Linked-List-Perm.cpp | 28 |
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<int>*& begin, const LinkedListNode<int>* end) { + if(end == nullptr) + return true; + + bool res = isLinkedListPermRec(begin, end->next) && (begin->data == end->data); + + begin = begin->next; + return res; +} + +template<class T> +bool isLinkedListPerm(const LinkedListNode<T>* ll) { + if(ll == nullptr) + return true; + + const LinkedListNode<int>* begin = ll; + const LinkedListNode<int>* end = ll; + + return isLinkedListPermRec(begin, end); +} + +int main() { + LinkedListNode<int>* ll = new LinkedListNode(0, new LinkedListNode(1, new LinkedListNode(1))); + + std::cout << isLinkedListPerm(ll); +}
\ No newline at end of file |
