題目描述
在一個排序的鏈表中,存在重復的結(jié)點,請刪除該鏈表中重復的結(jié)點,重復的結(jié)點不保留,返回鏈表頭指針。 例如,鏈表1->2->3->3->4->4->5 處理后為 1->2->5
記錄一下自己唯一看懂的一種答案(==)
鏈接:https://www.nowcoder.com/questionTerminal/fc533c45b73a41b0b44ccba763f866ef
來源:??途W(wǎng)
? 劍指offer沒看,不知道是不是用的這個方法。
看懂了這個圖,就明白了。
? 1.加一個頭結(jié)點
? 2.兩個臨時指針p,q
? 3.找前后不相等的節(jié)點


截圖中別人的答案是用java寫的,但是思路是相同的。本題的關(guān)鍵在于頭節(jié)點的處理,如何定位有效的頭節(jié)點?這條思路中的解法十分巧妙,新建一個頭節(jié)點(確定該頭節(jié)點的值不會和pHead的值重合),最后統(tǒng)一返回head-next。其次,用p來保存有效的節(jié)點的前面一個節(jié)點,也就是說用p-next來保存真正保留的節(jié)點。