Skip to content

Instantly share code, notes, and snippets.

Created August 4, 2014 01:31
Show Gist options
  • Save anonymous/1ce9e9c817f23d47b80f to your computer and use it in GitHub Desktop.
Save anonymous/1ce9e9c817f23d47b80f to your computer and use it in GitHub Desktop.
#include <iostream>
struct node
{
node() : info(0), next(nullptr) {}
int info;
node* next;
};
void reverse(node* head)
{
if (head == nullptr || head->next == nullptr)
return;
node* prevNode = head;
node* currNode = head->next;
do
{
node* nextNode = currNode->next;
currNode->next = prevNode;
prevNode = currNode;
currNode = nextNode;
} while (currNode->next != nullptr);
currNode->next = prevNode;
head->next = nullptr;
}
int main(int argc, char* argv[])
{
node* nodeA = nullptr;
reverse(nodeA);
node* nodeB = new node;
reverse(nodeB);
delete nodeB;
node* nodeD = new node;
node* nodeE = new node;
node* nodeF = new node;
node* nodeG = new node;
nodeD->info = 7;
nodeD->next = nodeE;
nodeE->info = 3;
nodeE->next = nodeF;
nodeF->info = 3;
nodeF->next = nodeG;
nodeG->info = 1;
reverse(nodeD);
node* n = nodeG;
do
{
std::cout << n->info << std::endl;
n = n->next;
} while (n != nullptr);
delete nodeD;
delete nodeE;
delete nodeF;
delete nodeG;
std::cin.get();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment