leetcode82: Remove Duplicates from Sorted ListII
程序员文章站
2023-12-27 18:53:09
...
题目:
给定一个排好序的链表,移除它所有重复的元素,返回那些独一无二的元素;
Example 1:
Input: 1->2->3->3->4->4->5
Output: 1->2->5
Example 2:
Input: 1->1->1->2->3
Output: 2->3
思路:
使用两个指针,一个指向前一个元素,另一个指向当前元素,判断前一个元素,
当前元素以及当前元素的下一个是否相等,只要有相等的便移除所有相等的元素。
注意,最后一个元素要单独判别。
**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class LinkedList82 {
public ListNode deleteDuplicates(ListNode head) {
if(head==null)
return null;
ListNode dummy=new ListNode(0==head.val?1:0);
dummy.next=head;
ListNode pre=dummy;
ListNode cur=head;
ListNode first=dummy;
while(cur!=null&&cur.next!=null){
if(cur.val!=pre.val&&cur.next.val!=cur.val){
first.next=cur;
first=first.next;
}
pre=cur;
cur=cur.next;
}
if(pre.val!=cur.val){
first=cur;
first=first.next;
}
first.next=null;
return dummy.next;
}
}
推荐阅读
-
leetcode82: Remove Duplicates from Sorted ListII
-
【一天一道LeetCode】#26. Remove Duplicates from Sorted Array
-
LeetCode 83. Remove Duplicates from Sorted List
-
83. Remove Duplicates from Sorted List
-
LeetCode 83. Remove Duplicates from Sorted List
-
LeetCode 83. Remove Duplicates from Sorted List ***
-
Leetcode 83. Remove Duplicates from Sorted List
-
Leetcode No.26 Remove Duplicates from Sorted Array(c++实现)
-
26. Remove Duplicates from Sorted Array
-
【LeetCode】80. Remove Duplicates from Sorted Array II (删除排序数组中的重复项 II)-C++实现及详细图解