單鏈表的反轉(zhuǎn)問題
單鏈表反轉(zhuǎn)問題經(jīng)常會(huì)遇到。在此記錄一下,以便查閱方便。
如果反轉(zhuǎn)一個(gè)有頭結(jié)點(diǎn)的使用下面的方法比較合適。
//反轉(zhuǎn)單鏈表,此單鏈表帶有頭節(jié)點(diǎn)。 //思想:使用tmp臨時(shí)指針保存頭結(jié)點(diǎn)與鏈表的關(guān)系 typedef struct ListNode { int data; struct ListNode * next; }ListNode,*LinkList; void ReverseList(ListNode* Head) { ListNode *current,*tmp; current = Head->next; if(current != NULL)//反轉(zhuǎn)后第一個(gè)節(jié)點(diǎn)的后繼要為NULL { tmp = current; current = current->next; tmp->next = NULL; } while(current!=NULL) { tmp = current; current = current->next; tmp->next = Head->next; Head->next = tmp; } }
如果沒有頭結(jié)點(diǎn),下面的反轉(zhuǎn)比較合適
//如果沒有頭節(jié)點(diǎn),下面的函數(shù)比較適合 //思想:使用pre和next兩個(gè)指針來記錄當(dāng)前處理的節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)和后一個(gè)節(jié)點(diǎn)的信息 ListNode * ReverseLinkList(ListNode * head) { ListNode * pre,*next; pre = NULL; next = NULL; while(head) { next = head->next; head->next = pre; pre = head; head = next; } return pre; }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。