首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >87 - 删除链表中重复的节点

87 - 删除链表中重复的节点

原创
作者头像
ruochen
修改于 2021-06-16 10:24:11
修改于 2021-06-16 10:24:11
3.1K0
举报

在一个链表中,存在重复的节点,请删除该链表中重复的节点,重复的节点只保留一个,最后返回链表头指针

例如:链表1->2->3->4->4->5, 处理后为 1->2->3->4->5

代码语言:txt
复制
class LinkedNode:
    def __init__(self, x):
        self.val = x
        self.next = None
        
def deleteDuplication(pHead):
    nodeValues = {}
    newHead = LinkedNode(pHead.val)
    nodeValues[pHead.val] = pHead.val
    
    curNode = newHead
    while pHead.next:
        pHead = pHead.next
        if nodeValues.get(pHead.val) == None:
            curNode.next = LinkedNode(pHead.val)
            curNode = curNode.next
            nodeValues[pHead.val] = pHead.val
    return newHead

header = LinkedNode(1)
node1 = LinkedNode(1)
header.next = node1
node2 = LinkedNode(2)
node1.next = node2

def printLinked(header):
    p = header
    while p:
        print(p.val)
        p = p.next
        
header = deleteDuplication(header)
printLinked(header)
代码语言:txt
复制
1
代码语言:txt
复制
2

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 在一个链表中,存在重复的节点,请删除该链表中重复的节点,重复的节点只保留一个,最后返回链表头指针
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档