Reverse single linked list


 
Thread Tools Search this Thread
Top Forums Programming Reverse single linked list
# 1  
Old 06-19-2007
Reverse single linked list

Can any one help me in reversing the single linked list and at the same time i want to print the reversed links.
# 2  
Old 06-19-2007
Should be able to do this in a single loop....

Code:
struct item
{ 
      struct item*next;
};

struct item *forward=get_list_to_revese();
struct item *reverse=NULL;

         while (forward)
         {
                 struct item *p=forward; /* pop first from forward */
                 forward=forward->next;
                 p->next=reverse;         /* push onto reverse */
                 reverse=p;
                 printf("%p\n",p);
         }

# 3  
Old 06-19-2007
recursion works as well -

Code:
#include <stdlib.h>

typedef struct
list
{
	int data;
	struct list *next;
} list_t;

void rev(list_t *p)
{
	if(p->next !=NULL) rev(p->next);
	printf("%d\n", p->data);
}

If you need to store the reversed list:
Code:
void rev(list_t *p, list_t **reverse)
{
	if(p->next !=NULL) rev(p->next);
	printf("%d\n", p->data);
	*reverse=p;
	reverse++;
}

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

How to reverse a linked list by traversing only once.?

Program to reverse a linked list by traversing only once. (1 Reply)
Discussion started by: VSSajjan
1 Replies

2. Programming

How to delete the last node in a linked list.?

How to delete the last node in a single linked list given only the pointer to last node ? Head node will not be given. (5 Replies)
Discussion started by: VSSajjan
5 Replies

3. Programming

Help with linked list.

#include<stdio.h> #include<stdlib.h> struct LinkedList { int val; struct LinkedList *next; }node; /*Creating a structure variable*/ typedef struct LinkedList Node; Node *start = NULL; int create(int i) { Node *temp = NULL; if (start == NULL) ... (5 Replies)
Discussion started by: prinsh
5 Replies

4. UNIX for Advanced & Expert Users

Unix linked-list placement

Hi, I am programming in kernel, and I want to use a double linked list that holds infos that every process could access and modify THIS list. So, I suppose it is a 'global' variable since every process(thread) can reach it, I am wondering where to put it? by changing some of the kernel files? (1 Reply)
Discussion started by: louisTan
1 Replies

5. Programming

How to check if something exists in linked list in C?

i have a linked list set up like typedef struct client_list { char *client_name; int client_socket_fd; struct client_list *next; } client; client *client_list=NULL; before adding to the list i check if it already exists, only if it does not then i add if (client_list==NULL... (1 Reply)
Discussion started by: omega666
1 Replies

6. Programming

Help with linked list in C

i have this code typedef struct client_list { char *client_name; struct client_list * next; int client_socket_fd; } client; client *current, *head; head = NULL; char *h="test"; add_client(current, h, head, &client_socket_fd); ... (24 Replies)
Discussion started by: omega666
24 Replies

7. Programming

I need C++ Code for single linked list

I need C++ Code for single linked list With operations as 1)insert at any position 2)delete any 3)change the data of any position (2 Replies)
Discussion started by: girija
2 Replies

8. Programming

shared memory with linked list??

is this possible, if so plz please share with me.. Correct English please, not Cyber-/Leetspeak (11 Replies)
Discussion started by: vijay_manpage
11 Replies

9. Programming

How to attach a linked list to the shared memory?

Hi all, I have been working on shared memory. I have created the shared memory and a linked list of 5 nodes. Now I want to attach the linked list to shared memory. When we attach a shared memory it returns a void pointer, but here I am in a fix , how to relate this void pointer to linked list.... (4 Replies)
Discussion started by: jimmyuk
4 Replies

10. UNIX for Dummies Questions & Answers

List linked files

A perl script that displays the list of files which have multiple links..! ls -l shows number of links in a field. (0 Replies)
Discussion started by: aadi_uni
0 Replies
Login or Register to Ask a Question