C++刪除鏈表中間節(jié)點的方法
更新時間:2017年05月09日 14:41:05 作者:難免有錯_
這篇文章主要介紹了C++刪除鏈表中間節(jié)點的方法,結(jié)合實例形式分析了鏈表刪除中間節(jié)點的具體思路與實現(xiàn)技巧,需要的朋友可以參考下
本文實例講述了C++刪除鏈表中間節(jié)點的方法。分享給大家供大家參考,具體如下:
題目:
給定鏈表頭結(jié)點head,實現(xiàn)刪除鏈表的中間節(jié)點函數(shù)。
解題思路及代碼:
快慢指針,快指針走兩步,慢指針一步。
當快指針走到終點時,慢指針正好是鏈表中間節(jié)點,刪除此節(jié)點即可。
鏈表結(jié)構定義:
typedef struct Node
{
int data;
struct Node* next;
}node, *pLinkedList;
算法C++代碼:
Node* removeMidNode(pLinkedList head)
{
if (head->next == NULL || head == NULL)
return head;
if (head->next->next == NULL)
return head->next;
pLinkedList fast = head;
pLinkedList slow = head;
pLinkedList pre = NULL;
/*
head 1 2 3 4 5
pre slow fast
*/
//1個節(jié)點
if (head->next->next == NULL)
return head->next;
while (fast->next != NULL && fast->next->next != NULL)
{
pre = slow;
fast = fast->next->next;
slow = slow->next;
}
//此時fast已到終點,slow為中間節(jié)點,pre為中間節(jié)點前一個節(jié)點
pre->next = slow->next;
free(slow);
slow = NULL;
return head;
}
希望本文所述對大家C++程序設計有所幫助。
相關文章
opencv2基于SURF特征提取實現(xiàn)兩張圖像拼接融合
這篇文章主要為大家詳細介紹了opencv2基于SURF特征提取實現(xiàn)兩張圖像拼接融合,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-03-03

