Write a program to reverse a linked list?

Answer Posted / murali

/* Error Checking is not done */

#include <stdio.h>
typedef struct node {
char ch;
struct node *next;
} list;
list* addNode(const list *start, char ch) {
list *ll;
ll = (list *)start;
while( ll->next != NULL ) { ll = ll->next; }
ll->next = (list *) malloc(sizeof(list));
ll->next->ch = ch;
ll->next->next = NULL;
return ll->next;
}
void printList(const list *start) {
list *ll;
ll = (list *)start;
while ( ll->next != NULL ) {
printf(" %c --> ", ll->ch );
ll = ll->next;
}
printf(" %c --> ", ll->ch );
printf( " NULL ");
}
void reverse(list *a, list *b) {
if( b->next != NULL )
reverse(b, b->next);
b->next = a;
a->next = NULL;
}
int main() {

list *end;
list *start = (list *) malloc(sizeof(list));
start->ch = 'A';
start->next = NULL;

addNode(start, 'B');
addNode(start, 'C');
addNode(start, 'D');
addNode(start, 'E');
end = addNode(start, 'F');

printList(start);
printf("\n");

reverse(start, start->next);

printList(end);
printf("\n");

return 0;
}

Is This Answer Correct ?    9 Yes 5 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

Write a program using merge () function to combine the elements of array x[ ] and y[ ] into array z[ ].

599


What do you understand by pure virtual function? Write about its use?

573


List the special characteristics of constructor.

717


What are static variables?

611


Can a constructor return a value?

567






What is the type of 'this' pointer?

589


how to access grid view row?

1808


What's the "software peter principleā€?

614


Which software is used for c++ programming?

606


Can comments be longer than one line?

610


What are the advantages of early binding?

602


Can we use clrscr in c++?

521


Can static member variables be private?

615


What are the advantages of pointers?

588


what are the events occur in intr activated on interrupt vector table

1172