用python代码写一个双链表
时间: 2023-12-17 17:45:36 浏览: 25
以下是一个简单的双链表实现:
```python
class Node:
def __init__(self, data=None):
self.data = data
self.prev = None
self.next = None
class DoublyLinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current_node = self.head
while current_node.next is not None:
current_node = current_node.next
current_node.next = new_node
new_node.prev = current_node
def prepend(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
self.head.prev = new_node
new_node.next = self.head
self.head = new_node
def delete(self, data):
if self.head is None:
return
if self.head.data == data:
self.head = self.head.next
self.head.prev = None
return
current_node = self.head
while current_node is not None:
if current_node.data == data:
current_node.prev.next = current_node.next
if current_node.next is not None:
current_node.next.prev = current_node.prev
return
current_node = current_node.next
def print_list(self):
current_node = self.head
while current_node is not None:
print(current_node.data)
current_node = current_node.next
```
这个实现包括 append、prepend 和 delete 操作,以及一个打印方法。你可以使用它来创建一个双链表对象,例如:
```python
my_list = DoublyLinkedList()
my_list.append(1)
my_list.append(2)
my_list.prepend(3)
my_list.delete(2)
my_list.print_list()
```
这将输出:
```
3
1
```