题目描述
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次
例如:
给出的链表为1→1→2,返回1→2.
给出的链表为1→1→2→3→3,返回1→2→3.
数据范围:链表长度满足0≤n≤100,链表中任意节点的值满足∣val∣≤100
进阶:空间复杂度O(1),时间复杂度O(n)
示例1
输入:
{1,1,2}
复制
返回值:
{1,2}
复制
示例2
输入:
{}
复制
返回值:
{}
求解思路&实现代码
着重需要注意的一点是:重复的数字只会出现一次。
import java.util.*;
public class Solution {
public ListNode deleteDuplicates (ListNode head) {
//空链表 fast-template
if(head == null)
return null;
//遍历指针
ListNode cur = head;
//指针当前和下一位不为空
while(cur != null && cur.next != null){
//如果当前与下一位相等则忽略下一位
if(cur.val == cur.next.val)
cur.next = cur.next.next;
//否则指针正常遍历
else
cur = cur.next;
}
return head;}
}