描述
删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次
例如:
给出的链表为1→1→21→1→2,返回1→21→2.
给出的链表为1→1→2→3→31→1→2→3→3,返回1→2→31→2→3.
数据范围:链表长度满足 0≤n≤1000≤n≤100,链表中任意节点的值满足 ∣val∣≤100∣val∣≤100
进阶:空间复杂度 O(1)O(1),时间复杂度 O(n)O(n)
示例1
输入:
{1,1,2}
返回值:
{1,2}
示例2
输入:
{}
返回值:
{}
import java.util.*;
/*
* public class ListNode {
* int val;
* ListNode next = null;
* public ListNode(int val) {
* this.val = val;
* }
* }
*/
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param head ListNode类
* @return ListNode类
*/
public ListNode deleteDuplicates (ListNode head) {
if (head == null || head.next == null) return head;
ListNode p = head;
while (p != null && p.next != null) {
if (p.val == p.next.val) p.next = p.next.next;
else p = p.next;
}
return head;
}
}