#include #include // Note: It's ok that all the member variables are public for this // tiny class. We'll build up to a more robust and complete linked // list implementation in lecture 11. template class Node { public: T value; Node *ptr; }; template void print(Node *data, const std::string &label) { std::cout << label; Node *tmp = data; while (tmp != NULL) { std::cout << " " << tmp->value; tmp = tmp->ptr; } std::cout << std::endl; } template void reverse(Node* &input) { // FILL IN THIS FUNCTION } int main() { // manually create a linked list of notes with 4 elements Node* my_list = new Node; my_list->value = 1; my_list->ptr = new Node; my_list->ptr->value = 2; my_list->ptr->ptr = new Node; my_list->ptr->ptr->value = 3; my_list->ptr->ptr->ptr = new Node; my_list->ptr->ptr->ptr->value = 4; my_list->ptr->ptr->ptr->ptr = NULL; print(my_list,"my_list before"); reverse(my_list); print(my_list,"my_list after "); // Note: We are not deleting any of the Nodes we created... so this // program has memory leaks! More on this in lecture 11. } // ===========================================================================