題意:給乙個排序鍊錶,要求刪除其中的所有重複結點(包括自身),返回刪除後的頭結點
思路:主要有幾個要注意的點,乙個是頭結點也可能重複,重複完後的下乙個值不同的結點還可能接著重複,需要找到第乙個不重複的結點,再從這個結點往後找,記錄最後乙個不重複的結點,沒有重複的時候更新這個結點,否則找到下乙個不重複結點,將其連線起來,直到處理到鍊錶末尾即可
public
class
solution
while
(flag1)
} listnode node = phead.next, pre = phead;
while
(node != null)
if(flag)
pre.next = node.next;
else
pre = pre.next;
node = node.next;
}return phead;
}}
NOWCODER程式設計題 刪除鍊錶中重複的結點
在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 首先判斷鍊錶是否為空,或者是否只含有乙個節點,如果是,則返回頭結點 建立乙個新節點cur,使得cur next phead。這個節點是為了防止頭...
刪除重複鍊錶
在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 class solution listnode newhead listnode malloc sizeof listnode newhead ...
鍊錶 刪除鍊錶中重複的節點
刪除鍊錶中重複的節點 方法一 採用遞迴的方法,但這種方法在鍊錶無重複節點時效率不高 function deleteduplication phead if phead.val phead.next.val return deleteduplication node 採用遞迴的方法從下乙個不重複的點開...