题解 | 【模板】链表

【模板】链表

https://www.nowcoder.com/practice/97dc1ac2311046618fd19960041e3c6f

class ListNode:
    def __init__(self, data):
        self.data = data
        self.next = None


class LinkedList:
    def __init__(self):
        self.head = None

    def insert(self, x, y):
        new_node = ListNode(y)
        current = self.head
        if not current:
            self.head = new_node
            return
        if current.data == x:
            self.head = new_node
            new_node.next = current
            return
        prev = None
        while current and current.data != x:
            prev = current
            current = current.next
        if not current:
            prev.next = new_node
            return
        prev.next = new_node
        new_node.next = current

    def delete(self, x):
        current = self.head
        if not current:
            return
        if current.data == x:
            self.head = current.next
            return
        prev = None
        while current and current.data != x:
            prev = current
            current = current.next
        if not current:
            return
        prev.next = current.next

    def node(self):
        s = []
        current = self.head
        if not current:
            return
        while current:
            s.append(current.data)
            current = current.next
        return s


n = int(input())
linked_list = LinkedList()
for _ in range(n):
    a = input().split()
    if a[0] == "insert":
        x, y = map(int, a[1:3])
        linked_list.insert(x, y)
    else:
        x = int(a[1])
        linked_list.delete(x)
if linked_list.node():
    print(' '.join(list(map(str,linked_list.node()))))
else:
    print('NULL')

全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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