Link list in reverse order.

Answers were Sorted based on User's Feedback



Link list in reverse order...

Answer / shruti

/*
the structure is as follows:
struct node
{
int data;
struct node *next;
}
*/

struct node * reverse (struct node *home , struct node *rev)
{
struct node temp , *p;

if(home != NULL)
{
temp = home;
while(temp != NULL)
{
//this part will create a new node with the name p.
p = myalloc;
p -> data = temp -> data;
p -> next = NULL;

if(rev == NULL)
rev = p;
else
{
p -> next = rev;
rev = p;
}
temp = temp -> next;
}
}
return rev;
}

Is This Answer Correct ?    5 Yes 0 No

Link list in reverse order...

Answer / lijun li

#include <stdio.h>

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

LIST* reverse(LIST *head)
{
LIST* temp;
LIST* temp1;

if (head == NULL || head->next == NULL)
return head;
else
{
temp = head->next;
head->next = NULL;
while(temp)
{
temp1 = temp->next;
temp->next = head;
head = temp;
temp = temp1;
}

return head;
}
}

int main(int argc, char ** argv)
{
int i=0;
LIST* head = NULL;
LIST* node = NULL;
int count;

if (argc < 2) printf("usage: a.out <count>");
else count = atoi(argv[1]);

for (i=0;i<count;i++)
{
node = (LIST*)calloc(sizeof(LIST));
node->data = i;
node->next = head;

head = node;
}

node = head;
while(node)
{
printf("before %d\n", node->data);
node = node->next;
}

head = reverse(head);
printf("after head=%d\n", head->data);
node = head;
while(node)
{
printf("after %d\n", node->data);
node = node->next;
}
}

Is This Answer Correct ?    6 Yes 1 No

Link list in reverse order...

Answer / shruti

**Liked list as a stack = linked list in reverse order.

/*
the structure is as follows:
struct node
{
int data;
struct node *next;
}
*/

struct node * reverse (struct node *home , struct node *rev)
{
struct node temp , *p;

if(home != NULL)
{
temp = home;
while(temp != NULL)
{
//this part will create a new node with the name p.
p = myalloc;
p -> data = temp -> data;
p -> next = NULL;

if(rev == NULL)
rev = p;
else
{
p -> next = rev;
rev = p;
}
temp = temp -> next;
}
}
return rev;
}

Is This Answer Correct ?    2 Yes 0 No

Link list in reverse order...

Answer / shruti

//Go through the code, incase any issues feel free to
revert.

Copying a link list:

//home is the stationary pointer of the main linked list
which is to be copied.

//head is the stationary pointer of the new linked list
which has to be created..

//temp and temp1 are the moving pointers attached to the
respective linked list...


struct node *copy(struct node *home , struct node *head)
{
struct node *temp , *temp1 , *p;

temp = home;
while(temp != NULL)
{
p = (struct node *) malloc (sizeof(struct node));
p -> data = temp -> data;

if(head == NULL)
head = p;

else
{
temp1 = head;
while(temp1 -> next != NULL)
temp1 = temp1 -> next;

temp1 -> next = p;
}
temp = temp -> next;
}
return head;
}

Is This Answer Correct ?    1 Yes 0 No

Link list in reverse order...

Answer / ashitosh

node *reverse(node *head)
{ node *p,*q,*r;
p=NULL;
q=head;
r=q->next;
while(q!=NULL)
{
q->next=p;
p=q;
q=r;
if(q!=NULL)
r=q->next;
}
return(p);
}

Is This Answer Correct ?    1 Yes 0 No

Link list in reverse order...

Answer / raghuram.a

node *reverse(node *first)


{
node *cur,*temp;


cur=NULL;

while(first!=NULL)


{temp=first;

first=first->link;

temp->link=cur;

cur=temp;
}

return cur;

}

Is This Answer Correct ?    5 Yes 5 No

Link list in reverse order...

Answer / aqib

write a link list program to insert integer number and then
display its sum as well. Your program should display the
address as well as the result
write a program to reverse a link list so that the last
element becomes the first one and so on
copy one link list to another list

Is This Answer Correct ?    0 Yes 2 No

Link list in reverse order...

Answer / sameera.adusumilli

recursive reverse(ptr)
if(ptr->next==NULL)
return ptr;
temp=reverse(ptr->next);
ptr=ptr->next;
return ptr;
end

Is This Answer Correct ?    3 Yes 8 No

Post New Answer

More C Code Interview Questions

write a origram swaoing valu without 3rd variable

2 Answers  


#include<stdio.h> main() { struct xx { int x; struct yy { char s; struct xx *p; }; struct yy *q; }; }

1 Answers  


Given an array of characters which form a sentence of words, give an efficient algorithm to reverse the order of the words (not characters) in it.

2 Answers   Wipro,


Write a Program that Inputs 10 Numbers in an Array and Show the Maximum Number

2 Answers   Ace Info,


main() { int *ptr=(int*)malloc(sizeof(int)); *ptr=4; printf("%d",(*ptr)+++*ptr++); }

3 Answers   GNITC,


main() { int i; clrscr(); for(i=0;i<5;i++) { printf("%d\n", 1L << i); } } a. 5, 4, 3, 2, 1 b. 0, 1, 2, 3, 4 c. 0, 1, 2, 4, 8 d. 1, 2, 4, 8, 16

4 Answers   HCL,


how to print 1 2 3 4 5 6 7 8 9 10 9 8 7 6 5 4 3 2 1 using any loop(for or while) only once(only 1 loop) and maximum 2 variables using C.

19 Answers   Cap Gemini, Infosys,


What is the difference between proc means and proc tabulate ? explain with a simple example when you have to use means or tabulate?

1 Answers  


main() { int i=3; switch(i) { default:printf("zero"); case 1: printf("one"); break; case 2:printf("two"); break; case 3: printf("three"); break; } }

1 Answers  


Write a program that find and print how many odd numbers in a binary tree

1 Answers  


#include<stdio.h> int main() { int x=2,y; y=++x*x++*++x; printf("%d",y); } Output for this program is 64. can you explain how this output is come??

1 Answers  


void main() { printf(“sizeof (void *) = %d \n“, sizeof( void *)); printf(“sizeof (int *) = %d \n”, sizeof(int *)); printf(“sizeof (double *) = %d \n”, sizeof(double *)); printf(“sizeof(struct unknown *) = %d \n”, sizeof(struct unknown *)); }

1 Answers  


Categories