30
Mar
Reversing a single linked list using stack
Related Blog Items
- Reversing a circular single linked list using pointers
- Reversing single linked list recursively
- Printing linked List in Reverse without Reversing The List Actually
- Reversing a double linked list
- Reverse linked list using pointers
Here is the routine for reversing single linked list using a stack, for reversing linked list using pointers, see the earlier post. For reversing linked list recursively visit this post. This routine takes a single linked list as argument and reverse it and returns back the head node to the reversed list.
struct Node *reverse(struct Node* node)
{
struct Node *tmpnode, *headnode;
Stack *stack = CreateStack();
while(node)
{
Push(stack, node);
node = node->next;
}
headnode = Pop(stack);
tmpnode = node = headnode;
while(tmpnode)
{
tmpnode = Pop(stack);
node->next = tmpnode;
node = node->next;
}
DestroyStack(stack);
return headnode;
}
comments welcome…
Popularity: 43%
You need to log on to convert this article into PDF
Related Blog Items - Reversing a circular single linked list using pointers
- Reversing single linked list recursively
- Printing linked List in Reverse without Reversing The List Actually
- Reversing a double linked list
- Reverse linked list using pointers
Related Blog Items
- Reversing a circular single linked list using pointers
- Reversing single linked list recursively
- Printing linked List in Reverse without Reversing The List Actually
- Reversing a double linked list
- Reverse linked list using pointers
hello , i been trying to check some of the articles here and alot dont work .. like the reverse using stack and this one! .. please note.
March 18th, 2008 at 10:41 pm