📅  最后修改于: 2023-12-03 15:19:12.348000             🧑  作者: Mango
链表是一种常用的数据结构,其常见的一种操作就是插入新节点。在 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 实现链表插入操作,包括定义链表节点类和链表类,以及在头部和尾部插入节点的方法实现。除此之外,我们还可以实现在链表中任意位置插入节点的操作,感兴趣的读者可以自行尝试。