【发布时间】:2020-04-19 00:46:43
【问题描述】:
问题需要从链表中删除节点给定链表的头指针和要删除的链表中节点的位置。更多问题详情请见:https://practice.geeksforgeeks.org/problems/delete-a-node-in-single-linked-list/1
代码返回分段错误,但不确定我哪里出错了。我的代码如下:
Node* deleteNode(Node *head,int x)
{
//Your code here
struct Node* temp = head;
if(x==0){
//change head
head = temp->next;
free(temp);
}
//find previous node of node to be deleted
for(int i=0; temp!=NULL && i<x-1; ++i){
//traverse
temp = temp->next;
}
//now temp should be pointing to previous node
//store pointer to next of node to be deleted
struct Node* next = temp->next->next;
free(temp->next);
temp->next= next;
}
【问题讨论】:
-
抛开内部逻辑,别再对编译器撒谎了。你答应
return一个Node*;兑现诺言。 -
您真正使用的是哪种语言,C 还是 C++?你知道,它们是不同的语言。
-
@WhozCraig Snap,错过了哈哈。
标签: c++ c pointers linked-list segmentation-fault