不带头结点的链表实现代码
时间: 2023-11-18 12:06:35 浏览: 43
以下是一个不带头结点的链表实现代码示例:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def add_node(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
return
current_node = self.head
while current_node.next is not None:
current_node = current_node.next
current_node.next = new_node
def remove_node(self, data):
if self.head is None:
return
if self.head.data == data:
self.head = self.head.next
return
current_node = self.head
while current_node.next is not None:
if current_node.next.data == data:
current_node.next = current_node.next.next
return
current_node = current_node.next
def print_list(self):
current_node = self.head
while current_node is not None:
print(current_node.data, end=" ")
current_node = current_node.next
print()
```
这个链表类有三个主要的方法:`add_node`、`remove_node`和`print_list`。`add_node`方法在链表的末尾添加一个新节点。`remove_node`方法从链表中删除给定数据的节点。`print_list`方法按顺序打印链表中的所有节点的数据。这个链表没有头结点,因此链表的头部由`self.head`属性表示。