【发布时间】:2016-04-14 11:09:21
【问题描述】:
我想从列表中的给定位置删除一个节点, 但我的删除功能不起作用。 请帮帮我。
提前致谢。
Node* Delete(Node *head, int position)
{
int count=0;
Node* temp, *temp1, *temp2;
temp = head ;
if(head==NULL){
return 0;
}
else if(position == 0)
{
head = head->next;
free(temp);
return head;
}
else{
while(count!= position-1)
{
temp = temp->next;
count++;
}
temp1 = temp->next;
temp->next = temp1->next;
free(temp1);
return temp;
}
return head;
}
【问题讨论】:
-
如何它不起作用?你有构建错误吗?崩溃?您是否尝试过在调试器中运行?逐行遍历代码,看看哪里出错了?
-
请定义所需的行为。返回值应该是多少?
-
我的猜测:
return temp;应该被删除。 -
非常感谢 MikeCAT...我从代码中删除了“return temp;”...现在它工作正常...:)
标签: c data-structures linked-list