C语言 链表,从前面删除节点


    struct node{
      char * title;
      char * type;
      struct node * next;
    };
typedef struct node headPtr;
headPtr * removeFromFront(headPtr * List){
 if(List->next==NULL){             
     return NULL;
 }
 else {
     List=List->next;
     return List;
 }
 }

这是我的结构和我的链表函数,用于删除前面的第一个元素,但我不知道为什么它不工作。它没有返回我想要的结果

谁能告诉我我做错了什么?

代码可以简化为:

headPtr * removeFromFront(headPtr * List)
{
    if(List == NULL)
        return NULL;
    return List->next;
}

但是,它看起来很好,所以调用方可能有问题

headPtr * removeFromFront(headPtr * List){
 if(List != NULL && List->next != NULL){             
     headPtr *newHead = List->next;
     free(List);
     return newHead;
 }
 return NULL;
}

相关内容

  • 没有找到相关文章

最新更新