【剑指Offer】 56.删除链表中重复的结点 python实现

题目描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

思路

先不管三七二十一把所有节点的值放到一个列表中,再筛选出值数量为1的值。
再新建一个链表返回即可。很暴力。

# -*- coding:utf-8 -*-
# class ListNode:
#     def __init__(self, x):
#         self.val = x
#         self.next = None
class Solution:
    def deleteDuplication(self, pHead):
        # write code here
        res = []
        while pHead:
            res.append(pHead.val)
            pHead = pHead.next
        res = list(filter(lambda c: res.count(c) == 1, res))
        dummy = ListNode(-1)
        pre = dummy
        for i in res:
            node = ListNode(i)
            pre.next = node
            pre = pre.next
        return dummy.next
发布了116 篇原创文章 · 获赞 6 · 访问量 6155

猜你喜欢

转载自blog.csdn.net/weixin_42247922/article/details/104071398