刪除有序鍊錶中重複的結點

2021-09-21 07:06:43 字數 553 閱讀 3380

比如:將鍊錶1,2,2,3,4,4,5,6,7,7,7中重複的結點刪除,則結果變為:1,3,5,6

方法為:從鍊錶的頭結點開始,用兩個引用p1,p2來代表相比較的前後兩個結點;

如果p1的值不等於p2的值,則p1與p2都往後移動一位;

如果p1的值等於p2的值,則讓p1的位置不變,讓p2往後移動,直到p2的值不等於p1的值,然後讓p1的前乙個結點的下乙個結點為p2;

下面就是一次過程:

/刪除有序鍊錶中重複的值,裡面包含特殊情況,就是如果重複的值在鍊錶的最後,要特別注意

private static node deleteduplicated(node head)

pre.next=p2;

p1=p2;

if(p2!=null)

}else

}return prenode.next;

}

刪除鍊錶中重複的結點

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