📜  python 链表插入 - Python (1)

📅  最后修改于: 2023-12-03 15:19:12.348000             🧑  作者: Mango

Python 链表插入

链表是一种常用的数据结构,其常见的一种操作就是插入新节点。在 Python 中可以用类来实现链表数据结构,下面我们就来学习如何在链表中进行插入操作。

定义链表节点类

链表节点类主要包含两个属性:值(value)和下一个节点的指针(next)。我们可以定义一个名为 ListNode 的类来表示链表节点,代码如下:

class ListNode:
    def __init__(self, value):
        self.value = value
        self.next = None
定义链表类

链表类主要包含两个属性:链表长度(size)和头节点(head)。我们可以定义一个名为 LinkedList 的类来表示链表,代码如下:

class LinkedList:
    def __init__(self):
        self.size = 0
        self.head = None
插入操作

插入操作包括在链表头部插入节点和在链表尾部插入节点。以在链表头部插入节点为例,我们可以定义一个名为 add_at_head 的方法来实现,在该方法中创建一个新的节点,将其 next 指向原来的头节点,然后将新节点赋值给头节点,并将链表长度加 1。

class LinkedList:
    def __init__(self):
        self.size = 0
        self.head = None
        
    def add_at_head(self, value):
        new_node = ListNode(value)
        new_node.next = self.head
        self.head = new_node
        self.size += 1

同理,在链表尾部插入节点时,我们可以定义一个名为 add_at_tail 的方法来实现,在该方法中遍历链表找到尾节点,然后创建一个新的节点,将尾节点的 next 指向新节点,最后将新节点设置为尾节点,并将链表长度加 1。

class LinkedList:
    def __init__(self):
        self.size = 0
        self.head = None
        
    def add_at_head(self, value):
        new_node = ListNode(value)
        new_node.next = self.head
        self.head = new_node
        self.size += 1
        
    def add_at_tail(self, value):
        new_node = ListNode(value)
        if not self.head:
            self.head = new_node
        else:
            cur = self.head
            while cur.next:
                cur = cur.next
            cur.next = new_node
        self.size += 1
总结

本文介绍了如何使用 Python 实现链表插入操作,包括定义链表节点类和链表类,以及在头部和尾部插入节点的方法实现。除此之外,我们还可以实现在链表中任意位置插入节点的操作,感兴趣的读者可以自行尝试。