用代码实现单链表的基本操作
时间: 2023-06-12 12:02:20 浏览: 56
当然,我会很乐意回答您的问题!以下是单链表的基本操作代码示例:
```python
# 定义一个单链表节点的类
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
# 定义一个单链表的类
class LinkedList:
def __init__(self):
self.head = None
# 在头部插入一个节点
def addAtHead(self, val: int) -> None:
new_node = ListNode(val)
new_node.next = self.head
self.head = new_node
# 在尾部插入一个节点
def addAtTail(self, val: int) -> None:
new_node = ListNode(val)
if not self.head:
self.head = new_node
else:
tmp = self.head
while tmp.next:
tmp = tmp.next
tmp.next = new_node
# 在指定位置插入一个节点
def addAtIndex(self, index: int, val: int) -> None:
new_node = ListNode(val)
if index <= 0:
new_node.next = self.head
self.head = new_node
else:
tmp = self.head
for i in range(index - 1):
if not tmp:
return
tmp = tmp.next
if not tmp:
return
new_node.next = tmp.next
tmp.next = new_node
# 删除指定位置的节点
def deleteAtIndex(self, index: int) -> None:
if index < 0:
return
if index == 0:
self.head = self.head.next
else:
tmp = self.head
for i in range(index - 1):
if not tmp:
return
tmp = tmp.next
if not tmp or not tmp.next:
return
tmp.next = tmp.next.next
# 获取指定位置的节点的值
def get(self, index: int) -> int:
if index < 0:
return -1
tmp = self.head
for i in range(index):
if not tmp:
return -1
tmp = tmp.next
return tmp.val
# 修改指定位置的节点的值
def set(self, index: int, val: int) -> None:
if index < 0:
return
tmp = self.head
for i in range(index):
if not tmp:
return
tmp = tmp.next
if not tmp:
return
tmp.val = val
```
以上就是单链表的基本操作的代码实现!希望能帮到您!