删除排序链表中的重复元素(简单)

这道题比较简单,不做过多的描述

给定一个排序链表,删除所有重复的元素每个元素只留下一个。

样例

给出 1->1->2->null,返回 1->2->null

给出 1->1->2->3->3->null,返回 1->2->3->null

"""
Definition of ListNode
class ListNode(object):
    def __init__(self, val, next=None):
        self.val = val
        self.next = next
"""

class Solution:
    """
    @param: head: head is the head of the linked list
    @return: head of linked list
    """
    def deleteDuplicates(self, head):
        if head is None:
            return head
        temp = head
        while temp.next is not None:
            if temp.next.val == temp.val:
                temp.next = temp.next.next
            else:
                temp = temp.next
        return head

  

原文地址:https://www.cnblogs.com/KanHin/p/8120260.html

时间: 2024-10-16 09:59:55

删除排序链表中的重复元素(简单)的相关文章

[leetcode] 83. 删除排序链表中的重复元素

83. 删除排序链表中的重复元素 链表操作 class Solution { public ListNode deleteDuplicates(ListNode head) { if (head == null) return head; if (head.next == null) return head; ListNode now = head.next; ListNode last = head; while (now != null) { while (now != null &&

【Leetcode】删除排序链表中的重复元素

题目链接:删除排序链表中的重复元素 题意:给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次. 题解:这个的上一题是也是删除排序链表的重复元素,不过元素都删掉..在剑指offer里也有做过.可以看链接. 这个就是在上个题的基础上做一点修改.最后更新节点时,直接指向这个重复节点的最后一个节点.而不是它的下一个. 代码: 1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * L

【LeetCode链表】删除排序链表中的重复元素 II

题目描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 题目链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/ 做这题之前,可以先做删除排序链表中的重复元素,题解. 思路 这题是<剑指Offer>上的一道题.我们需要保存3个指针:

Leetcode(无重复字符的最长子串;删除排序链表中的重复元素II;加一;最后一个单词的长度;相同的树)

1.无重复字符的最长子串 这题需要用到滑动窗口法,有许多问题都可以考虑使用滑动窗口法:https://www.geeksforgeeks.org/tag/sliding-window/ 因为用c++,所以用到set容器:std::count 2.删除排序链表中的重复元素II 3.加一 1 class Solution { 2 public: 3 vector<int> plusOne(vector<int>& digits) { 4 int n=digits.size()-

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

leetcode(使用的是中文网站:领扣):83 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 一开始没有看到排序链表这个条件,所以解法有一点麻烦 解法一: 思路:再创建一个链表B,然后遍历原来的链表A,将A中的元素添加到B的链表尾部. 每

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

题目 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例1 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例2 输入: 1->1->1->2->3 输出: 2->3 思路 新建新链表,创建newHead以及newCurrent分别是新链表的头部节点以及记录新链表当前值 创建原链表pre指向虚拟头节点,以及current记录当前访问的值还有nextCurrent

LeetCode 82. 删除排序链表中的重复元素 II(Remove Duplicates from Sorted List II)

题目描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 解题思路 由于重复的节点要全部删掉,所以再删除时要先保存重复节点的前一个节点,注意特殊情况是链表的开头就是重复节点,所以应首先找到链表从左往右第一个不重复的节点作为头节点,若头节点不为

leetcode 82. 删除排序链表中的重复元素 II

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2: 输入: 1->1->1->2->3输出: 2->3 来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii著作权归领扣网络所有.商

【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* deleteDupli