在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。 例如,鍊錶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...