下面是一种实现删除排序链表中重复元素的方法:
```java
public class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
}
}
public ListNode deleteDuplicates(ListNode head) {
ListNode current = head;
while (current != null && current.next != null) {
if (current.val == current.next.val) {
current.next = current.next.next;
} else {
current = current.next;
}
}
return head;
}
```
首先,我们定义了 ListNode 类来表示链表的节点。每个节点有一个整数值 val 和一个指向下
一个节点的指针 next。
接下来,我们在 deleteDuplicates 方法中使用两个指针 current 和 next 来遍历链表。初始时,
current 指向头节点 head。
在循环中,我们检查 current 和 current.next 的值是否相等。如果相等,说明当前节点的值重
复出现了。为了删除重复的元素,我们只需要将 current 的 next 指针指向下一个节点的 next
指针,即跳过当前重复的节点。如果不相等,说明当前节点的值不重复,我们将 current 指
向下一个节点。
最后,我们返回头节点 head,即删除重复元素后的链表。
这种实现的时间复杂度是 O(n),其中 n 是链表的长度。