LeetCode83-除排序链表中的重复元素

LeetCode83-除排序链表中的重复元素

最近全国疫情严重,待在家里没事干,马上又要准备春招了,最近刷刷题,记录一下!再说一句,武汉加油,大家出门记得戴口罩!

1、题目

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

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

示例 2:

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

2、思路

分两种情况去写代码。
情况一:如果下一个节点的值和当前节点的值相同,则删除下一个节点
情况二:如果下一个几点的值和当前节点的值不同,则指针移到下一个节点。

3、代码

c++

class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        auto cur=head;
        while(cur)
        {
            //下一个节点的值和当前节点的值相同,则删除下一个节点
            if(cur->next&&cur->val==cur->next->val)
            {
                cur->next=cur->next->next;
            }
            //下一个几点的值和当前节点的值不同,则指针移到下一个节点。
            else cur=cur->next;
        }
        return head;
        
    }
};

Java

class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        ListNode cur=head;
        while(cur!=null)
        {
            //下一个节点的值和当前节点的值相同,则删除下一个节点
            if(cur.next!=null&&cur.val==cur.next.val)
            {
                cur.next=cur.next.next;
            }
            //下一个几点的值和当前节点的值不同,则指针移到下一个节点。
            else cur=cur.next;
        }
        return head;  
    }
}
发布了38 篇原创文章 · 获赞 46 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/sk18192449347/article/details/104099772