You are viewing a single comment's thread. Return to all comments →
DoublyLinkedListNode* reverse(DoublyLinkedListNode* llist) { if(llist == NULL || llist->next == NULL) return llist; DoublyLinkedListNode * cursor = llist; while(cursor->next!=NULL){ // switch prev and next pointer DoublyLinkedListNode * temp = cursor->next; cursor->next = cursor->prev; cursor->prev = temp; // move to 'next' node cursor = cursor->prev; } cursor->next = cursor->prev; cursor->prev = NULL; return cursor; }
Seems like cookies are disabled on this browser, please enable them to open this website
Reverse a doubly linked list
You are viewing a single comment's thread. Return to all comments →
DoublyLinkedListNode* reverse(DoublyLinkedListNode* llist) { if(llist == NULL || llist->next == NULL) return llist; DoublyLinkedListNode * cursor = llist; while(cursor->next!=NULL){ // switch prev and next pointer DoublyLinkedListNode * temp = cursor->next; cursor->next = cursor->prev; cursor->prev = temp; // move to 'next' node cursor = cursor->prev; } cursor->next = cursor->prev; cursor->prev = NULL; return cursor; }