题解 | #从单向链表中删除指定值的节点#

从单向链表中删除指定值的节点

https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f

完全按照链表的形式来做:

class Node():
    def __init__(self, val):
        self.val = val
        self.next = None


class linkList():
    def __init__(self, node=None):
        self.head = node

    def travel(self):
        if not self.head:
            return None
        cur = self.head
        while cur:
            print(cur.val, end=' ')
            cur = cur.next

    def insert(self, val, k):
        cur = self.head
        while cur.val != k:
            cur = cur.next
        node = Node(val)
        node.next = cur.next
        cur.next = node
            
    def delete(self, val):
        cur = self.head
        pre = None
        while cur.val != val:
            pre = cur
            cur = cur.next
        if not pre:
            self.head = self.head.next
        else:
            pre.next = cur.next


s = input().split()
N = s.pop(0)
node = Node(s.pop(0))
d = s.pop()
link = linkList(node)
while s:
    val = s.pop(0)
    k = s.pop(0)
    link.insert(val, k)

link.delete(d)
link.travel()

全部评论
飘红可以无视,正常来说应该有一些条件判断,比如是否为空,某一值是否存在于链表中等等,但是题目给保证合法了,索性不去判断
点赞 回复 分享
发布于 2022-11-16 20:49 陕西

相关推荐

不愿透露姓名的神秘牛友
今天 14:22
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务