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

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  


Given an array of size N in which every number is between 1 and N, determine if there are any duplicates in it. You are allowed to destroy the array if you like.

21 Answers   ABC, eBay, Goldman Sachs, Google, HUP, Microsoft, TATA,


main() { int a=10,*j; void *k; j=k=&a; j++; k++; printf("\n %u %u ",j,k); }

1 Answers  


Is the following code legal? void main() { typedef struct a aType; aType someVariable; struct a { int x; aType *b; }; }

1 Answers  


main() { if ((1||0) && (0||1)) { printf("OK I am done."); } else { printf("OK I am gone."); } } a. OK I am done b. OK I am gone c. compile error d. none of the above

5 Answers   HCL,






x=2 y=3 z=2 x++ + y++; printf("%d%d" x,y);

2 Answers  


source code for delete data in array for c

1 Answers   TCS,


What is "far" and "near" pointers in "c"...?

3 Answers  


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,


Program to Delete an element from a doubly linked list.

4 Answers   College School Exams Tests, Infosys,


Write a program to print a square of size 5 by using the character S.

6 Answers   Microsoft,


main() { signed int bit=512, mBit; { mBit = ~bit; bit = bit & ~bit ; printf("%d %d", bit, mBit); } } a. 0, 0 b. 0, 513 c. 512, 0 d. 0, -513

3 Answers   HCL, Logical Computers,


Categories