【leetcode】【82】Remove Duplicates from Sorted List II

来源:互联网 发布:知乎成都审核招聘 编辑:程序博客网 时间:2024/06/05 18:35

一、问题描述

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.

二、问题分析

首先head可能会被delete,所以最好额外添加一个头结点。剩下的无非就是链表的遍历问题。比较简单。

三、Java AC代码

public ListNode deleteDuplicates(ListNode head) {if (head == null || head.next == null) {return head;}ListNode dummy = new ListNode(0);    ListNode pre = dummy;    ListNode cur = head;    while (cur != null) {        if (cur.next != null && cur.val == cur.next.val) {            while (cur.next != null && cur.val == cur.next.val)                cur = cur.next;        } else {            pre.next = cur;            pre = pre.next;        }        cur = cur.next;    }    pre.next = null;    return dummy.next;}




0 0
原创粉丝点击