AcWing 826. 单链表 python
时间: 2025-04-22 09:19:51 浏览: 50
### 如何用 Python 实现单链表
#### 定义节点类
为了构建单链表,首先定义一个 `Node` 类来表示链表中的每个节点。每个节点包含两个属性:数据 (`data`) 和指向下一个节点的指针 (`next`)。
```python
class Node:
def __init__(self, data=None):
self.data = data # 节点存储的数据
self.next = None # 指向下一个节点的指针
```
#### 定义链表类
接着定义一个 `LinkedList` 类用于管理这些节点,并提供一些基本操作方法:
```python
class LinkedList:
def __init__(self):
self.head = None # 初始化头结点为空
def append(self, data):
new_node = Node(data)
if not self.head: # 如果当前列表为空,则设置新加入的元素为首元节点
self.head = new_node
return
last = self.head
while last.next: # 找到链表最后一个位置
last = last.next
last.next = new_node # 将新的节点连接到最后面
def display(self):
elements = []
current_node = self.head
while current_node:
elements.append(current_node.data)
current_node = current_node.next
print(elements)
def insert_at_beginning(self, data):
new_node = Node(data)
new_node.next = self.head
self.head = new_node
def delete_by_value(self, key):
cur_node = self.head
if cur_node and cur_node.data == key:
self.head = cur_node.next
cur_node = None
return
prev = None
while cur_node and cur_node.data != key:
prev = cur_node
cur_node = cur_node.next
if cur_node is None:
return
prev.next = cur_node.next
cur_node = None
```
此部分代码实现了创建一个新的节点并将其添加至链表末端的功能[^1]。此外还提供了打印整个链表以及删除指定值的方法。
对于AcWing 826题目而言,上述基础功能已经足够解决该问题的需求。如果需要更复杂的操作比如反转链表、查找倒数第K个节点等功能可以根据具体需求进一步扩展此类。
阅读全文
相关推荐







