AcWing 29. 删除链表中重复的节点
原题链接
中等
作者:
不哭死神
,
2021-09-03 17:36:29
,
所有人可见
,
阅读 232
双指针
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteDuplication(ListNode head) {
ListNode dummy = new ListNode(0);
dummy.next = head;
ListNode pre = dummy, cur = dummy.next;
while (cur != null && cur.next != null) {
if (cur.val != cur.next.val) {
pre = cur;
} else {
// 如果存在重复值,就不停的移动cur,直到不重复
while (cur.next != null && cur.val == cur.next.val) {
cur = cur.next;
}
}
// 处理pre
pre.next = cur.next;
cur = cur.next;
}
return dummy.next;
}
}