单链表逆序的多种方式
生活随笔
收集整理的這篇文章主要介紹了
单链表逆序的多种方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://www.cnblogs.com/eniac12/p/4860642.html
template<class T>
void List<T>::Inverse()
{if(first == NULL) return;LinkNode<T> *p, *prev, *latter; p = first->link; // 當前結點prev = NULL; // 前一結點latter = p->link; // 下一結點while(p != NULL){p->link = prev; // 當前結點指針指向前一結點prev = p; // 后移p = latter;if(p != NULL) // 如果p指針是NULL,已經滿足終止條件latter = p->link;}first->link = prev;; // 最后連上附加頭結點
}
https://blog.csdn.net/ljyljyok/article/details/77996029
LINK_NODE?*ReverseLink(LINK_NODE?*head)
???{
???? ? LINK_NODE?*next;
???? ? ?LINK_NODE?*prev?=?NULL;
????
???? ? ?while(head?!=?NULL)
???? ? ?{
???? ? ? ? ?next?=?head->next;
???? ? ? ? head->next?=?prev;
???? ? ? ? prev?=?head;
???? ? ? ? head?=?next;
???? ??}
????
???? ? ?return?prev;
????}
http://www.nowamagic.net/librarys/veda/detail/2241
/* 單鏈表反轉/逆序 */ Status ListReverse(LinkList L) {LinkList current,pnext,prev;if(L == NULL || L->next == NULL)return L;current = L->next; /* p1指向鏈表頭節點的下一個節點 */pnext = current->next;current->next = NULL;while(pnext){prev = pnext->next;pnext->next = current;current = pnext;pnext = prev;printf("交換后:current = %d,next = %d \n",current->data,current->next->data);}//printf("current = %d,next = %d \n",current->data,current->next->data);L->next = current; /* 將鏈表頭節點指向p1 */return L; }
http://www.nowamagic.net/librarys/veda/detail/2242
http://www.nowamagic.net/librarys/veda/detail/2242
總結
以上是生活随笔為你收集整理的单链表逆序的多种方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信公众号调用接口报错:输出参数: {
- 下一篇: 单链表各种操作详解