无头节点的单链表是指链表中没有头结点,只有首节点。下面是一个简单的实现示例:

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

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

    def is_empty(self):
        return self.head is None

    def add_first(self, data):
        new_node = Node(data)
        new_node.next = self.head
        self.head = new_node

    def add_last(self, data):
        new_node = Node(data)
        if self.is_empty():
            self.head = new_node
        else:
            current = self.head
            while current.next is not None:
                current = current.next
            current.next = new_node

    def remove(self, data):
        if self.is_empty():
            return
        if self.head.data == data:
            self.head = self.head.next
            return
        current = self.head.next
        prev = self.head
        while current is not None:
            if current.data == data:
                prev.next = current.next
                return
            prev = current
            current = current.next

    def print_list(self):
        current = self.head
        while current is not None:
            print(current.data, end=' ')
            current = current.next

在这个实现中,我们使用 Node 类来表示链表中的每个节点。LinkedList 类包含了一些基本的链表操作,如添加节点、删除节点和打印链表。注意,当链表为空时,self.head 为 None。当要添加第一个节点时,需要将 self.head 设置为新节点。


原文地址: https://www.cveoy.top/t/topic/otqb 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录