typedef struct _Node {
int value;
struct _Node* next;
} Node, *List;
void delete_k_value(List head, int k)
{
unsigned int len = 0;
Node *p1 = head;
int temp = 0;
int i = 0;
//检查头结点是否正确
if(head->value <= 0)
{
printf("error\n");
return;
}
len = head->value;
//检查K值是否合法
if(k >= len)
{
printf("error\n");
return;
}
//找到K的前驱节点
for(i = 0; i < (len-k-1); ++i)
{
if(NULL == p1)
{
printf("error\n");
return;
}
p1 = p1->next;
}
//保存K位置的值
temp = p1->next->value;
//删除K位置的节点
p1->next = p1->next->next;
return;
}
温馨提示:答案为网友推荐,仅供参考