/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if (head == null) {
return null;
}
// 初始化快慢指针
ListNode slow = head;
ListNode fast = head;
while (fast != null) {
if (fast.val != slow.val) {
// 等同于数组中的无重复元素赋值
slow.next = fast;
// 等同于数组中的慢指针下标自增
slow = slow.next;
}
// 等同于数组中的快指针下标自增
fast = fast.next;
}
// slow 即无重复元素的尾结点,指向 null
slow.next = null;
return head;
}
}