Search This Blog

Sunday, September 21, 2014

WAP to reverse a singly linked list

1:  typedef struct abc  
2:  {  
3:    int a;  
4:    struct abc *next;  
5:  }abc;  
6:  M-1 : Using three pointers  
7:  void revrse_list()  
8:  {  
9:    abc *temp = NULL,*temp1 = NULL, *temp2 = NULL;  
10:    temp = start;  
11:    temp1 = temp->next;  
12:    temp2 = temp1->next;  
13:    temp->next = NULL;  
14:    while(temp1->next != NULL)  
15:    {  
16:      temp = temp1;  
17:      temp1 = temp2;  
18:      temp2 = temp2->next;  
19:      temp1->next = temp;  
20:    }  
21:    start = temp1;  
22:  }  
23:  M-2 : Using recursive  
24:  abc *reverse_list(abc *node)  
25:  {  
26:    abc *temp = NULL;  
27:    if ( node->next == NULL)  
28:    {  
29:      start = node;  
30:      return node;  
31:    }  
32:    temp = reverse_list(node->next);  
33:    temp->next = node;  
34:    return node;  
35:  }  
36:  main()  
37:  {  
38:    abc *temp = NULL;  
39:    temp = reverse_list(start);  
40:    temp->next = NULL;  
41:  }   

No comments:

Post a Comment