单链表逆置
SingleList* SingleList::reverseList(SingleList *head){ SingleList *tmp = head; if((head==NULL)||(head->next==NULL))return head; SingleList* pre = head->next; SingleList* cur = pre->next; SingleList* post = pre->next; while(cur->next!=NULL){ post = post->next; cur->next = pre; pre = cur; cur = post; } head->next->next=NULL; head->next =cur; cur->next = pre; return head; }
双链表逆置
DoublyLinkedList* DoublyLinkedList::reverseDLList(DoublyLinkedList* head){ if((head==NULL)||(head->next()==NULL))return head; DoublyLinkedList* pre = head->next(); DoublyLinkedList* cur = pre->next(); DoublyLinkedList* post = pre->next(); while(cur->next()!=NULL){ post=post->next(); cur->setNext(pre); cur->setPre(post); pre = cur; cur= post; } cur->setNext(pre); pre = head->next(); pre->setPre(pre->next()); pre->setNext(NULL); head->setNext(cur); return head; }