刪除鍊錶中的重複結點

2021-10-03 17:26:09 字數 828 閱讀 4234

題目描述

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

思路:一開始我審錯題了以為是沒有排序的,想用hashmap來寫,哈哈哈。這題有個很關鍵的點是如果頭結點就是重複的會出大問題。最簡單的辦法是建乙個頭結點指向他,這就可以避免第乙個結點是重複的了。總共需要建三個節點,乙個是頭結點head,乙個當前的不重複元素的節點pre,乙個是工作節點last。

當last和last.next的值重複時,就一直找找到最後乙個重複的節點。pre.next=last.next;因為在的last是指向該值最後乙個重複的節點,所以pre.next要指向last.next.

/*

public class listnode

}*/class

solution

pre.next=last.next;

last=last.next;

}else

}return head.next;

}}

劍指offer中的解法:

public

class

listnode

}public

class

solution

if(needdelete==

false

)else

if(prenode==null)

else

node=nextnode;}}

return phead;

}}

刪除鍊錶中重複的結點

題目描述 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5。刪除鍊錶中重複的結點 author 過路的守望 public class duplicationnode 新建乙個節點指向頭結點 li...

刪除鍊錶中重複的結點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 解法一 遞迴 public class listnode public class solution if phead.next.val phe...

刪除鍊錶中重複的結點

在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 題目分析 刪除鍊錶中的結點要比較當前結點是否與前面結點和後面結點相同,只有兩個都不同的結點才保留。用pre儲存前乙個節點,cur儲存當前結點,c...