Bloomberg Interview Question

Rotate the linked list

Interview Answer

Anonymous

Aug 15, 2017

Node* rotate(Node *head) { Node *prevNode = head; if(prevNode->next == NULL) return head; Node *currentNode = head->next; Node *nextNode = currentNode == NULL ? NULL : currentNode->next; while(currentNode != NULL && nextNode != NULL) { currentNode->next = prevNode; //shift pointers prevNode = currentNode; currentNode = nextNode; nextNode = nextNode->next; } currentNode->next = prevNode; head = currentNode; return head; }