给定位置,如何返回给定位置的值,并从链接列表中移除该值?
我所拥有的,我认为,只对移除一个值有效,而不是返回它。
int i;
node *tmp = head;
for(i=0 ; i<pos; i++)
tmp = tmp->next;
node* tmp2 = tmp->next;
tmp->next = tmp->next->next;
free(tmp2);
return 0;
最佳答案
使用一些本地内存存储数据,删除后返回。
int i;
int data = 0; //for storing data
node *tmp = head;
for(i=0 ; i<pos && tmp != NULL; i++) //Added for checking end of list
tmp = tmp->next;
node* tmp2 = tmp->next;
tmp->next = tmp->next->next;
data = tmp2->data; //copy data to local struct before deleting
free(tmp2);
return data; //return the data
关于c - 从链表中删除并返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17692338/