チェーンテーブルの重複ノードの削除-Java実装
3992 ワード
public class DeleteDuplication {
/**
*
* 1、 , 。
* 2、 , ,
* next.next , null ,
* pre
* 3、 next ,
*/
public ListNode deleteDuplication(ListNode head) {
if(head == null)
return null;
ListNode preNode = new ListNode(); //
ListNode tmpNode = preNode;
preNode.next = head;
ListNode curNode = head; //
while(curNode != null) {
// ,
if(curNode.next != null && curNode.value == curNode.next.value) {
while(curNode.next != null && curNode.value == curNode.next.value)
curNode = curNode.next;
preNode.next = curNode.next; //
}
else {
preNode = curNode; // preNode
}
curNode = curNode.next;
}
return tmpNode.next;
}
}