The following C function takes a sinply-linked list as input argument. It modifies the list by moving the last element to the front of the list and returns the modified list. Some part of the code is left blank.
typedef struct node { int value; struct node *next; } Node; Node *move_to_front(Node *head) { Node *p, *q; if ((head = = NULL || (head->next = = NULL)) return head; q = NULL; p = head; while (p-> next !=NULL) { q=p; p=p->next; } _______________________________ return head; }
Choose the correct alternative to replace the blank line.
The following C function takes a single-linked list of integers as a parameter and rearranges the elements of the list. The function is called with the list containing the integers 1,2,3,4,5,6,7 in the given order. What will be the contents of the list after the function completes execution?
struct node { int value; struct node * next; }; Void rearrange (struct node * list) { struct node * p, * q; int temp; if (!list || !list -> next) return; p = list; q = list -> next; while (q) { temp = p -> value; p -> value = q -> value; q -> value = temp; p = q -> next q = p? p -> next : 0; } }