时间:2021-05-22
问题如下
输入:链表 a->b->c->d->e中指向节点c的指针
输出:无返回值,但新链表变为a->b->d->e
解答:
想了好久没想出来,看了提示才知道解法的。这里用到了一个小技巧。要删除中间节点,但是我们不知道要删除节点的上一个节点p,所以无法通过修改指针的方法(p->next=del->next)来删除节点,但知道要删除节点的后一个节点,那么我们换一个思路,把要删除的节点的数据与该节点的后一个节点的数据交换,然后删除后一个节点,从而达到目的。但是该方法不能删除最后一个节点,原因显而易见。
复制代码 代码如下:
// a tricky solution,can't delete the last one element
int delete_node(NODE* node) {
int data;
NODE *p=node->next;
node->data=p->data;
node->next=p->next;
free(p);
}
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C++删除链表中间节点的方法。分享给大家供大家参考,具体如下:题目:给定链表头结点head,实现删除链表的中间节点函数。解题思路及代码:快慢指针,
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。示例1:输入:head=[4,5,1,9],val=5输出:[4,
主要内容:单链表的基本操作删除重复数据找到倒数第k个元素实现链表的反转从尾到头输出链表找到中间节点检测链表是否有环在不知道头指针的情况下删除指定节点如何判断两个
本文实例讲述了Python实现针对给定单链表删除指定节点的方法。分享给大家供大家参考,具体如下:题目:初始化定义一个单链表,删除指定节点,输出链表下面是具体的实
本文实例讲述了C++实现单链表删除倒数第k个节点的方法。分享给大家供大家参考,具体如下:题目:删除单链表中倒数第k个节点解题思路及算法代码:标尺法,定义两个指针