linkedlist 插入
时间: 2023-08-12 11:06:56 浏览: 46
链表的插入操作可以分为三种情况:
1. 在链表头部插入节点
2. 在链表尾部插入节点
3. 在链表中间插入节点
下面是对应的代码实现:
1. 在链表头部插入节点
```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:
node = ListNode(val)
node.next = self.head
self.head = node
```
2. 在链表尾部插入节点
```python
class LinkedList:
def __init__(self):
self.head = None
def addAtTail(self, val: int) -> None:
node = ListNode(val)
if not self.head:
self.head = node
else:
curr = self.head
while curr.next:
curr = curr.next
curr.next = node
```
3. 在链表中间插入节点
```python
class LinkedList:
def __init__(self):
self.head = None
def addAtIndex(self, index: int, val: int) -> None:
if index == 0:
self.addAtHead(val)
else:
node = ListNode(val)
curr = self.head
for i in range(index-1):
curr = curr.next
if not curr:
return
node.next = curr.next
curr.next = node
```
注意,在进行链表的插入操作时,需要考虑到链表为空,或者插入的位置超出了链表的长度等情况。