从链表中删除节点时SIGSEGV分段错误

时间:2017-05-27 11:30:37

标签: c pointers linked-list singly-linked-list

我正在尝试从单个链接列表中删除值的第一个出现。但是,无论何时调用它都会产生分段错误。

typedef struct Node *node;
struct Node
{
    int data;
    node next;
};

node delete_node(int value, node l) {
    if (l == NULL){
      return NULL;
    }
    if (l->data == value) {
      node temp;
      temp = l->next;
      free(l);
      return temp;
    }
    l->next = delete_node(value, l->next);
    return l;
}

1 个答案:

答案 0 :(得分:0)

查看此站点的名称。 此代码可能导致堆栈溢出。 当链表很长时。

P.S。

if (l->_value_ == value) {

可能是l-> 数据