题意:给定一个单向已排序的链表,删除链表中重复的元素使每个元素只出现一次。
例子:
1->1->1->2,返回1->2
1->1->2->3->3->,返回1->2->3
思路:两个指针 ,分别从头开始,如果下一指针指向的元素与上一指针指向的元素相同则只将下一指针后移;否则两指针同时后移。
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head == null) return null;
ListNode left = head;
ListNode right = head.next;
while(right != null){
if(right.val == left.val){
right = right.next;
}else{
left.next = right;
left = right;
}
}
left.next = null;
return head;
}
}
删除重复链表元素
本文介绍了一种算法,用于删除已排序单向链表中的重复元素,确保每个元素仅出现一次。通过双指针法实现,高效简洁。
4852

被折叠的 条评论
为什么被折叠?



