在C中删除链表中的节点

zlwx9yxi  于 2022-12-03  发布在  其他
关注(0)|答案(1)|浏览(176)

我是一个计算机系的学生,我刚开始学习链表,我想写一个最简单的代码,从链表中删除一个节点,这意味着我不会考虑任何特殊情况;比如如果元素在头节点或者元素在最后一个节点或者有重复的元素(比如2个节点包含值5)或者其他类似的情况,我的问题很简单,我写的这段代码需要做什么调整,我可以不使用箭头吗?
谢谢你,祝你有愉快的一天!
注:这段代码的结果有点奇怪。2我把下面提到的函数和其他函数沿着放在一个循环里,其他函数都工作得很好,但是当我调用下面提到的函数时,我只会得到一个无限循环,要求我输入数据作为函数的参数。我猜这是我使用箭头的方式?如果不是,那么我就“我只是调整这个问题,并张贴整个代码,如果需要的话。只是,我的代码是像200行,所以我不想张贴它作为一个整体。

`node*  deleteFromList  (node* head, int x)
{
   node* tmp = head ;
   while(tmp->next->data != x );
   {
      tmp = tmp->next;
   }
   tmp->next= tmp->next->next;
   free (tmp->next);
   return head;
}`
dtcbnfnu

dtcbnfnu1#

tmp->next= tmp->next->next;
 free (tmp->next);

设置tmp->next指向要保留的节点,然后释放tmp->next,释放要保留的节点。

相关问题