牛客網 刪除鍊錶中重複結點

2021-08-31 04:08:04 字數 857 閱讀 5269

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

對於這個題:思路是

1.首先new乙個新的結點head作為頭結點,head指向鍊錶的第乙個結點,新new乙個頭結點是為了防止鍊錶第乙個結點開始就有重複元素,刪除了鍊錶原有頭結點。

2.由於資料是排序後的,那麼利用這一優勢,如果有重複元素,重複資料肯定連續,只要重複資料不再連續,就把重複資料之前結點指向重複資料下乙個結點,依次向後查詢。**如下:

/*

public class listnode }*/

public

class

solution

///防止將頭結點直接刪除第乙個結點,重新new乙個頭結點,這個頭結點指向第乙個結點,返回的是頭結點.next

listnode head =

newlistnode(0

);head.next = phead;

listnode prev = head, cur = phead, next = phead.next;

prev cur next

while

(next != null)

prev.next = next;

cur = next;

if(next != null)

next = next.next;

else

//next為空,直接返回

return head.next;

}else

}return head.next;

}}

牛客網 刪除鍊錶中重複的結點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 這種遞迴的鍊錶的解法看起來題目很簡單,答案也很簡單,但是遞迴過程中的變數變化邏輯很重要,可以畫圖來慢慢琢磨。class solution def...

牛客 刪除鍊錶中重複的結點

題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 1,申請乙個新的鍊錶儲存刪除重複結點後的鍊錶 2,注意是將所有重複的結點全部刪除 3,定義乙個p指標指向原鍊錶,乙個指標newp指向新...

牛客(56)刪除鍊錶中重複的結點

題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 public static class listnode public static listnode deleteduplicati...