【题目】
给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。
示例 1:
输入: 1->2->3->3->4->4->5输出: 1->2->5
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head==null||head.next==null){
return head;
}
ListNode front=head.next;
ListNode slow=head;
ListNode result=new ListNode(0);
result.next=head;
ListNode pre=result;
while(front!=null){
if(slow.val==front.val){
while(front!=null&&slow.val==front.val){
front=front.next;
}
pre.next=front;
slow=front;
if(front==null){
front=front;
}
else{
front=front.next;
}
}
else{
pre=pre.next;
slow=slow.next;
front=front.next;
}
}
return result.next;
}
}

本文介绍了一种算法,用于从已排序的链表中移除所有重复数字的节点,仅保留原始链表中未重复出现的数字。通过示例展示了输入为1->2->3->3->4->4->5时,输出变为1->2->5的过程。
5898

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



