package suanfa.list;
/**
链表删除重复
/
public class DeleteDuplicates {public static void main(String[] args) {
ListNode listNode1 = new ListNode(); ListNode listNode2 = new ListNode(); ListNode listNode3 = new ListNode(); ListNode listNode4 = new ListNode(); ListNode listNode5 = new ListNode(); listNode1.setVal(1); listNode1.setNext(listNode2); listNode2.setVal(2); listNode2.setNext(listNode3); listNode3.setVal(2); listNode3.setNext(listNode4); listNode4.setVal(3); listNode4.setNext(listNode5); listNode5.setVal(4); ListNode result = deleteDuplicates(listNode1);
}
public static ListNode deleteDuplicates(ListNode head) {
ListNode current = head; ListNode pre = current; /** * 如果当前元素和下一个元素的值不相同,当前元素向下移动一个 * 如果当前元素和下一个元素的值相同,当前元素向下移动两个 */ while (current != null && current.next != null) { if (current.val != current.next.val) { current = current.next; } else { current.next = current.next.next; } } return pre;
}
static class ListNode {
int val; ListNode next; public int getVal() { return val; } public void setVal(int val) { this.val = val; } public ListNode getNext() { return next; } public void setNext(ListNode next) { this.next = next; }
}
}