leetcode 简单第十八题 删除排序链表中的重复元素

Posted 丁壮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了leetcode 简单第十八题 删除排序链表中的重复元素相关的知识,希望对你有一定的参考价值。

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

示例 1:

输入: 1->1->2
输出: 1->2

示例 2:

输入: 1->1->2->3->3
输出: 1->2->3


/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* deleteDuplicates(struct ListNode* head) {
    if (head == NULL)
    {
        return NULL;
    }
    
    struct ListNode *p=head;
    struct ListNode *s=p->next;

    while(p->next != NULL)
    {
        if (p->val == s->val)
        {
            if (s->next != NULL)
                {
                    p->next = s->next;
                    s=s->next;
                }
                else
                {
                    p->next =NULL;
                    break;
                }
        }
        else
        {
            s=s->next;
            p=p->next;
        }
    }
    
    
     return head;
}

 




以上是关于leetcode 简单第十八题 删除排序链表中的重复元素的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode第十八题-四数之和

leetcode 简单第十八题 爬楼梯

剑指Offer(Java版)第十八题:输入一个链表,输出该链表中倒数第k个结点。 为了符合大多数人的习惯,本题从1开始计数,即链表的尾结点是倒数第1个结点。 例如一个链表有6个结点,从头结点开始它们的

leetcode 简单第三十八题 Excel表列名称

LeetCode Java刷题笔记—83. 删除排序链表中的重复元素

LeetCode Algorithm 83. 删除排序链表中的重复元素