diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/SinglyLinkedListWarmUp.iml b/.idea/SinglyLinkedListWarmUp.iml new file mode 100644 index 0000000..4c94235 --- /dev/null +++ b/.idea/SinglyLinkedListWarmUp.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/.idea/editor.xml b/.idea/editor.xml new file mode 100644 index 0000000..1f0ef49 --- /dev/null +++ b/.idea/editor.xml @@ -0,0 +1,580 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..077e3e0 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/main.cpp b/main.cpp index b26f302..7c16068 100644 --- a/main.cpp +++ b/main.cpp @@ -25,6 +25,12 @@ class SinglyLinkedList { while (temp->next) temp = temp->next; temp->next = newNode; } + Node* getHead() { + return head; + } + void modifyHead(Node* newhead) { + head = newhead; + } void printList() { Node* temp = head; @@ -35,9 +41,19 @@ class SinglyLinkedList { std::cout << "NULL" << std::endl; } - void reverseLinkedList() { + Node* reverseLinkedList(Node* starter) { // TODO: Students will implement this function std::cout << "Implement reverseLinkedList()" << std::endl; + if (starter->next != nullptr) { + Node* child = reverseLinkedList(starter->next); + if (child == nullptr) { + return starter; + } + starter->next->next = starter; + starter->next = NULL; + return child; + } + return starter; } }; @@ -49,7 +65,7 @@ int main() { list.printList(); // Student should implement reverseLinkedList() - list.reverseLinkedList(); + list.modifyHead(list.reverseLinkedList(list.getHead())); list.printList(); return 0; diff --git a/main.exe b/main.exe new file mode 100644 index 0000000..af889fb Binary files /dev/null and b/main.exe differ