Leetcode 82. Remove Duplicates from Sorted List II 移除重复 链表版-2 解题报告

1 解题思想

首先,这道题和之前的问题都挺像的,只是变成了链表,所以可以参照:
Leetcode 80. Remove Duplicates from Sorted Array II 重复移除 解题报告这里写链接内容
使用链表的话,也就是需要记得保存一下上一个的值的状态,决定是否需要将其移除(或者添加到不重复的链表上)

2 原题

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.

Subscribe to see which companies asked this question

3 AC解

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 * 
 * 移动的时候记得顺序跳过就可以了
 */
public class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        ListNode prehead=new ListNode(-1);
        ListNode p=prehead;
        while(head!=null){
            if(head.next==null || head.next.val!=head.val){
                p.next=head;
                p=head;
            } else{
                while(head.next!=null && head.next.val==head.val){
                    head=head.next;
                }
            }
            head=head.next;
        }
        p.next=null;
        return prehead.next;
    }
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/MebiuW/article/details/51542065
文章标签: leetcode 链表
个人分类: leetcode-java
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

Leetcode 82. Remove Duplicates from Sorted List II 移除重复 链表版-2 解题报告

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭