劍指offer 刪除鍊錶中的重複節點

2021-09-26 05:20:39 字數 725 閱讀 7900

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

/*

struct listnode

};*/

/*1.判空,空鍊錶返回。

2.初始化三個指標,pre、cur、last。

3.當前節點不為空進入迴圈:

如果當前節點的值與下乙個節點的值相等,則存在重複值節點,向後找到重複值的最後乙個節點。

刪除節點兩種情況,一是從頭結點開始刪除,二不從中間節點刪除。

如果當前節點的值與下乙個節點的值不相等,pre節點與當前節點向後走。

*/class solution

//如果cur指向鍊錶中第乙個元素,cur -> ... -> last ->...,要刪除cur到last, 將指向鍊錶第乙個元素的指標phead指向last->next。

if (cur == phead)

else//如果cur不指向鍊錶中第乙個元素,pre->cur->...->last->... ,要刪除cur到last,即pre->next = last->next

//當前處理的cur向後走,繼續判斷後面的節點是否有重複

cur = last->next;

}else //沒有重複節點向後走

}return phead;

}};

劍指offer 鍊錶 刪除鍊錶中的重複節點

題目在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 思路分析 思路一 使用linkedlist儲存不重複節點,重構鍊錶 分析評價 這個方法是乙個比較直接且容易想到的方法,使用時只要注意一些情況...

劍指offer 刪除鍊錶中重複的結點(鍊錶)

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 class solution listnode ans newlistnode 1 ans next phead listnode link a...

劍指Offer 鍊錶 刪除鍊錶中重複的結點

題目 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5。注意該鍊錶為排序鍊錶,重複的節點不保留哦!public class listnode 1 遞迴 遞迴的方法就像是先判斷第乙個節點和之後的節...