📅  最后修改于: 2023-12-03 15:40:00.724000             🧑  作者: Mango
单链表是一种常见的数据结构,是由一系列节点组成的链式存储结构。每个节点包含一个数据域和一个指针域,指向下一个节点。单链表的头节点没有前驱节点,尾节点没有后继节点。
在单链表中插入元素,可以在头节点或指定位置进行插入。假设我们定义节点如下:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
定义一个单链表,可以使用下面的代码:
class LinkedList:
def __init__(self):
self.head = None
在头节点插入元素非常简单,可以通过以下代码完成:
new_node = ListNode(1)
new_node.next = self.head
self.head = new_node
在指定位置插入元素需要先找到指定节点,然后进行插入操作。如果我们要在第二个节点后插入元素,可以使用以下代码:
new_node = ListNode(2)
cur = self.head
for _ in range(1, 2):
cur = cur.next
new_node.next = cur.next
cur.next = new_node
访问单链表中的元素,可以通过以下代码实现:
cur = self.head
while cur:
print(cur.val)
cur = cur.next
删除单链表中的元素,可以将待删除节点的前驱节点与后继节点相连。如果要删除指定节点,可以使用以下代码:
cur = self.head
pre = None
while cur:
if cur.val == value:
if not pre: # 删除头节点
self.head = cur.next
else:
pre.next = cur.next
break
pre, cur = cur, cur.next
单链表在链表题目中广泛应用,比如链表翻转、链表排序等。在工程中,单链表可以作为基本的数据结构,用于实现其他数据结构,比如队列、栈等。