链接列表,从前面删除节点?

时间:2014-03-26 20:55:49

标签: c linked-list

    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;
 }
 }

这是我的结构和我的链接列表功能,用于删除前面的第一个元素,但我无法弄清楚它为什么不起作用。它没有返回我想要的东西。

有人能告诉我我做错了吗?

2 个答案:

答案 0 :(得分:2)

代码可以简化为此。

headPtr * removeFromFront(headPtr * List)
{
    if(List == NULL)
        return NULL;

    return List->next;
}

然而,它看起来很好,所以来电方面可能存在问题

答案 1 :(得分:0)

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