专栏首页木又AI帮【leetcode刷题】T102-删除排序链表中的重复元素

【leetcode刷题】T102-删除排序链表中的重复元素

【题目】

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

示例 1:

输入: 1->1->2

输出: 1->2

示例 2:

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

输出: 1->2->3

【思路】

本题较为简单,遍历链表,判断前后两个节点的val值是否相同,如果相同,修改指针后,删除后一个节点。

【代码】

python版本

# Definition for singly-linked list.
# class ListNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.next = None

class Solution(object):
    def deleteDuplicates(self, head):
        """
        :type head: ListNode
        :rtype: ListNode
        """
        p = head
        q = head
        while(p and p.next):
            if p.val == p.next.val:
                q = p.next
                p.next = q.next
                del q
            else:
                p = p.next
        return head

C++版本

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
        ListNode* p = head;
        // 用于清除内存
        ListNode* q = head;
        while(p && p->next){
            if(p->val == p->next->val){
                q = p->next;
                p->next = q->next;
                delete q;
            }else{
                p = p->next;
            }
        }
        return head;
    }
};

本文分享自微信公众号 - 木又AI帮(gh_eaa31cab4b91),作者:木又

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【修改】【leetcode刷题】T102-删除排序链表中的重复元素

    本题较为简单,遍历链表,判断前后两个节点的val值是否相同,如果相同,修改指针后,删除后一个节点。

    木又AI帮
  • 【leetcode刷题】T104-翻转链表

    木又AI帮
  • 【leetcode刷题】T105-反转链表 II

    木又AI帮
  • 【修改】【leetcode刷题】T102-删除排序链表中的重复元素

    本题较为简单,遍历链表,判断前后两个节点的val值是否相同,如果相同,修改指针后,删除后一个节点。

    木又AI帮
  • 【leetcode刷题】T104-翻转链表

    木又AI帮
  • Leetcode 24. Swap Nodes in Pairs

    版权声明:博客文章都是作者辛苦整理的,转载请注明出处,谢谢! https://blog.csdn....

    Tyan
  • Leetcode 142 Linked List Cycle II

    Given a linked list, return the node where the cycle begins. If there is no cyc...

    triplebee
  • LeetCode 每日一题206: 反转链表

    按照题目的要求, 今天给出两个思路, 个人觉得迭代会比较容易思考出来, 先给出迭代的思路.

    benny
  • 链表总计

    // 这里创建一个新的链表,是因为必须创建一个指针,来输出结果集,或者只新建一个指针来保证记录链表的关系也可。

    用户7625070
  • LeetCode 24 Swap Nodes in Pairs

    ShenduCC

扫码关注云+社区

领取腾讯云代金券