刪除鍊錶中重複的節點

2021-07-28 20:24:32 字數 612 閱讀 5933

題目描述

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。 例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5

這個題目首先考慮到頭結點也可能是重複的節點,所以需要設定乙個頭結點之前的節點。之後需要3個指標

pre,cur和next

/*

struct listnode

};*/

class solution

if(next==null)

cur=null;

else //注意此時cur節點也是需要刪除的節點,所以令cur=next;並且需要再次進行判斷是否與後面的重複。

cur=next;

next=next->next;

}else //如果不出現重複則將pre和cur鏈結,並且pre和cur和next分別向後移動,注意邊界。

}pre->next=cur; //最後需要將pre和cur鏈結起來,對於上面的判斷條件,最後一步沒有鏈結起來。

return prehead->next;

}};

鍊錶 刪除鍊錶中重複的節點

刪除鍊錶中重複的節點 方法一 採用遞迴的方法,但這種方法在鍊錶無重複節點時效率不高 function deleteduplication phead if phead.val phead.next.val return deleteduplication node 採用遞迴的方法從下乙個不重複的點開...

鍊錶 刪除鍊錶中重複的節點

刪除鍊錶中重複的節點 方法一 採用遞迴的方法,但這種方法在鍊錶無重複節點時效率不高 function deleteduplication phead if phead.val phead.next.val return deleteduplication node 採用遞迴的方法從下乙個不重複的點開...

刪除鍊錶中重複的節點。

本題源自劍指offer 要刪除重複的節點,既要保留重複節點的前乙個節點和後乙個節點,然後讓前乙個節點指向後乙個節點。listnode deleteduplication listnode phead if flag if pre null else p pnext else return phead...