Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

目前創(chuàng)新互聯(lián)已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管、服務(wù)器租用、企業(yè)網(wǎng)站設(shè)計(jì)、萊陽網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.
刪除排序鏈表中的重復(fù)數(shù)據(jù)。與83題對(duì)比可知,83題要求重復(fù)數(shù)據(jù)保留一個(gè),而此題要求出現(xiàn)重復(fù)數(shù)據(jù)時(shí),刪除重復(fù)數(shù)據(jù)的節(jié)點(diǎn),一個(gè)不留。故此題與83題類似。
1)如果空鏈表或一個(gè)節(jié)點(diǎn),返回即可。
2)循環(huán)條件是鏈表不為空,此時(shí)最后一個(gè)節(jié)點(diǎn)需處理,當(dāng)出現(xiàn)最后兩個(gè)節(jié)點(diǎn)值一致時(shí)。此時(shí)需要逐個(gè)刪除。
3)當(dāng)出現(xiàn)當(dāng)前節(jié)點(diǎn)和下一節(jié)點(diǎn)值相同時(shí):指向下個(gè)節(jié)點(diǎn)并刪除當(dāng)前節(jié)點(diǎn)。
4)flag作用:當(dāng)兩個(gè)節(jié)點(diǎn)相同時(shí),我刪除當(dāng)前節(jié)點(diǎn)后,flag置為一,標(biāo)示下個(gè)節(jié)點(diǎn)是重復(fù)值節(jié)點(diǎn),需刪除。刪除完并將標(biāo)示置零。
5)否則保留節(jié)點(diǎn)。指向下個(gè)節(jié)點(diǎn)即可。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* deleteDuplicates(struct ListNode* head)
{
if ( head == NULL || head->next == NULL )
{
return head;
}
struct ListNode **list = &head;
int flag = 0;
while ( *list )
{
if ( (*list)->next != NULL && (*list)->val == (*list)->next->val )
{
flag = 1;
struct ListNode *delete = *list;
(*list) = (*list)->next;
free(delete);
}
else if ( flag == 1 )
{
flag = 0;
struct ListNode *delete = *list;
(*list) = (*list)->next;
free(delete);
}
else
{
list = &(*list)->next;
}
}
return head;
}
本文標(biāo)題:[LeetCode]82.RemoveDuplicatesfromSortedListII
本文網(wǎng)址:http://www.chinadenli.net/article36/pecjpg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、微信小程序、營(yíng)銷型網(wǎng)站建設(shè)、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)