删除单链表(带头结点,头插入法建立单链表)的第i个结点,代码
时间: 2024-05-05 21:17:23 浏览: 113
删除链表的倒数第 N 个结点.md
以下是删除单链表的第i个结点的代码实现。其中,head为头结点指针,i为待删除结点的位置。
```c++
void deleteNode(ListNode* head, int i) {
ListNode* p = head->next;
ListNode* pre = head;
int j = 1;
while (p && j < i) {
pre = p;
p = p->next;
j++;
}
if (!p || j > i) {
cout << "删除位置无效" << endl;
return;
}
pre->next = p->next;
delete p;
}
```
思路解析:
从头结点的下一个节点开始循环查找,记录当前节点位置和前一个节点位置,直到找到待删除节点或者遍历完整个链表。
如果找到待删除节点,将前一个节点的next指向待删除节点的next,然后删除待删除节点。
如果没有找到待删除节点,说明删除位置无效,直接输出提示信息即可。
阅读全文