在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1->2->3->3->4->4->5 處理後為 1->2->5
本題我們需要借助兩個指標來幫助我們完成題目,首先建立乙個新的頭節點head,並讓head指向原來鍊錶的頭節點,目的是為了防止出現鍊錶第乙個節點就出現重複的情況。隨後,需要建立兩個指標pre和last,pre指標的作用就是記錄當前沒有出現重複的節點,而last指標則負責尋找下乙個不重複出現的節點。當last尋找到時,pre指向last指標的下乙個節點(pre=last.next)即可完成刪除重複節點的操作。緊接著last指標移位。
last尋找到下乙個不重複出現的元素『5』時,指標定位在『3』,隨後pre=last.next,完成刪除重複元素的操作。pre=pre.next 、last=last.next。
去部落格設定頁面,選擇一款你喜歡的**片高亮樣式,下面展示同樣高亮的**片
.
class
listnode
public
listnode()
}public
class
deleteduplicatenode
listnode head=
newlistnode
(null,0
);//建立乙個新的頭節點,防止鍊錶第乙個元素出現重複
head.next=phead;
listnode pre=head;
//pre永遠指向上乙個非重複的元素
listnode last=head.next;
//last去尋找下乙個非重複元素
while
(last!=
null
) pre.next=last.next;
//鍊錶跳過重複元素
last=last.next;
//last繼續後移
}else
}return head.next;
}public
static
void
main
(string[
] args)
}
NOWCODER程式設計題 刪除鍊錶中重複的結點
在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 首先判斷鍊錶是否為空,或者是否只含有乙個節點,如果是,則返回頭結點 建立乙個新節點cur,使得cur next phead。這個節點是為了防止頭...
劍指 Offer JZ56 刪除鍊錶中重複的結點
在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 見 struct listnode class solution listnode headnode newlistnode 1 headnod...
劍指offer系列 56 刪除鍊錶中重複的結點
q 在乙個排序的鍊錶中,存在重複的結點,請刪除該鍊錶中重複的結點,重複的結點不保留,返回煉表頭指標。例如,鍊錶1 2 3 3 4 4 5 處理後為 1 2 5 a 題目並不難,重要的是,可以在head前新增乙個頭結點,防止head被刪的情況。listnode deleteduplication li...