這篇文章主要介紹如何使用C++實現(xiàn)單鏈表刪除倒數(shù)第k個節(jié)點的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
專業(yè)領(lǐng)域包括網(wǎng)站設(shè)計、做網(wǎng)站、商城網(wǎng)站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,成都創(chuàng)新互聯(lián)公司的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。
具體如下:
題目:
刪除單鏈表中倒數(shù)第k個節(jié)點
解題思路及算法代碼:
標尺法,定義兩個指針指向鏈表頭結(jié)點,先讓一個走k步,然后兩個指針同時開始走,當(dāng)先走的指針走到末尾時,后走的指針指向的結(jié)點就是需要刪除的結(jié)點。
單鏈表結(jié)構(gòu)定義:
typedef struct Node { int data; struct Node* next; }node, *pLinkedList;
刪除倒數(shù)第K結(jié)點操作代碼:
//head表示頭結(jié)點 Node* removeLastKthNode(pLinkedList head, int k) { if (NULL == head->next || k < 1) return head; pLinkedList cur = head; //1號指針 pLinkedList ret = head; //2號指針,指向待刪除節(jié)點 pLinkedList pre = NULL; //pdel待刪除節(jié)點的前一個節(jié)點 /* head 1 2 3 4 5 cur ret */ while (k > 0 && cur != NULL) { k--; cur = cur->next; } //當(dāng)鏈表走到終點時,k仍然大于0,可知k值大于鏈表長度 if (k > 0 && cur == NULL) { cout << "k值大于鏈表長度" << endl; return head; } //k == 0時,1號指針和2號指針同時走,ret即為待刪除的節(jié)點 if (k == 0) { while (cur != NULL) { pre = ret; cur = cur->next; ret = ret->next; } /*k = 2時 head 1 2 3 4 5 NULL pre ret cur 即要求刪除ret節(jié)點 */ pre->next = ret->next; free(ret); ret = NULL; return head; } }
以上是“如何使用C++實現(xiàn)單鏈表刪除倒數(shù)第k個節(jié)點的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站名稱:如何使用C++實現(xiàn)單鏈表刪除倒數(shù)第k個節(jié)點的方法
網(wǎng)頁鏈接:http://www.rwnh.cn/article42/jisiec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、App開發(fā)、域名注冊、移動網(wǎng)站建設(shè)、服務(wù)器托管、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)