题目大意:删除单链表中的某个节点,限制条件是只给你指向某个节点的指针(保证不会给你指向最后一个节点的指针),让你删除这个节点。
比如 1->2->3->4,给你指向3这个节点的指针,然后让这个链表变为1->2->4
思路分析:由于是单链表,所以我们没有办法获取这个节点前面的一个节点,但是我们可以把后面一个节点的值赋值给当前节点,然后将当前节点指向后面一个节点的后一个节点。
代码如下:
void deleteNode(struct ListNode* node) {
struct ListNode * p = node->next;
node->val = p->val;
node->next = p->next;
free(p);
}
本文介绍了一种删除单链表中指定节点的算法,仅使用指向该节点的指针,通过直接修改指针指向跳过被删除节点,实现链表结构的动态调整。此方法适用于链表数据结构的维护与优化。
994

被折叠的 条评论
为什么被折叠?



