删除单链表(带头结点,头插入法建立单链表)的第i个结点
时间: 2024-05-07 10:15:51 浏览: 39
假设单链表的头结点为head,要删除第i个结点,则需要先找到第i-1个结点,然后将第i-1个结点的next指针指向第i+1个结点即可。具体实现如下:
```python
def delete_node(head, i):
if i <= 0:
print("Invalid index")
return head
if head is None or head.next is None:
print("Empty list")
return head
count = 0
prev = head
curr = head.next
while curr is not None:
count += 1
if count == i:
prev.next = curr.next
curr.next = None
return head
prev = curr
curr = curr.next
print("Index out of range")
return head
```
其中,count用来记录当前遍历到的结点的位置,prev用来记录当前结点的前一个结点,curr用来记录当前结点。当count等于i时,说明找到了要删除的结点,将prev的next指针指向curr的next结点,然后将curr的next指针置为None,即可删除curr结点。如果遍历完整个链表都没有找到要删除的结点,则说明i的值超出了链表的长度,输出相应的提示信息即可。
阅读全文