From acac9d75f756956e8eda95726e8d41892f118c64 Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Tue, 6 Sep 2022 06:12:28 +0000 Subject: [PATCH 1/2] Setting up GitHub Classroom Feedback From 7419f9523c298db64173a69cb1707b55722500a9 Mon Sep 17 00:00:00 2001 From: KamaL145 Date: Wed, 7 Sep 2022 11:10:03 +0300 Subject: [PATCH 2/2] add --- src/linked_list.cpp | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) diff --git a/src/linked_list.cpp b/src/linked_list.cpp index aa46f5d..a355c96 100644 --- a/src/linked_list.cpp +++ b/src/linked_list.cpp @@ -12,7 +12,22 @@ namespace assignment { * по времени ~ O(N) */ void LinkedList::ReverseIterative() { - // Напишите здесь свой код ... + if (front_ == nullptr || front_ == back_) { + return; + } + + Node* current = front_; + Node *prev = NULL, *next = NULL; + while (current != NULL) { + next = current->next; + current->next = prev; + prev = current; + current = next; + } + + Node* tmp = front_; + front_ = back_; + back_ = tmp; } /** @@ -23,12 +38,26 @@ namespace assignment { * по времени ~ O(N) */ void LinkedList::ReverseRecursive() { - // Напишите здесь свой код ... + if (front_ == nullptr || front_ == back_) { + return; + } + + reverse_recursive_helper(front_->next, front_); + + front_->next = nullptr; + Node* tmp = front_; + front_ = back_; + back_ = tmp; } // вспомогательный метод для реализации рекурсии void LinkedList::reverse_recursive_helper(Node*& curr, Node* prev) { - // Напишите здесь свой код ... + if (curr == nullptr || prev == nullptr) { + return; + } + + reverse_recursive_helper(curr->next, curr); + curr->next = prev; } -} // namespace assignment +} // namespace assignment \ No newline at end of file