删除单链表(带头结点,头插入法建立单链表)的第i个结点
时间: 2023-06-01 21:03:05 浏览: 102
create_linklist_head.rar_Create_LinkList c++_head_头插法
需要遍历单链表,找到第i-1个结点,将其next指向第i+1个结点即可。具体实现如下:
```python
def delete_node(head, i):
if i <= 0:
print("Invalid index!")
return False
p = head
j = 0
while p.next and j < i-1:
p = p.next
j += 1
if not p.next or j > i-1:
print("Index out of range!")
return False
q = p.next
p.next = q.next
del q
return True
```
其中,head为头结点,i为要删除的结点的位置。首先需要判断i是否合法,然后遍历单链表找到第i-1个结点p和第i个结点q,将p的next指向q的next,然后删除q。如果i超出了单链表的长度,则删除失败。如果删除成功,返回True,否则返回False。
阅读全文