【发布时间】:2020-07-22 10:29:20
【问题描述】:
我想创建一个函数,在链表中搜索某个值,然后将包含它的节点和包含它的节点之前的节点放在两个单独的节点中。 这是我的代码,我不知道为什么它不起作用:
#include <stdio.h>
#include <stdlib.h>
struct node{
int val;
struct node* next;
};
typedef struct node node_t;
void printlist(node_t *head){
node_t *temp=head;
while (temp!=NULL){
printf("%d -",temp->val);
temp=temp->next;
}
printf("\n");
}
node_t *create_new_node(int value){
node_t *result=malloc(sizeof(node_t));
result->val=value;
result->next=NULL;
return result;
}
void *insert_after_node(node_t *node_to_insert,node_t *newnode){
newnode->next=node_to_insert->next;
node_to_insert->next=newnode;
}
void *find_node(node_t *head,int value,node_t *R,node_t *RA){
node_t *tmp=head;
while (R!=NULL && tmp!=NULL){
if (tmp->val==value)
R=tmp;
else{
RA=tmp;
tmp=tmp->next;
}
}
}
int main(){
node_t *head=NULL;
node_t *tmp;
node_t *R=NULL;
node_t *RA=NULL;
for (int i=0;i<25;i++){
tmp=create_new_node(i);
insert_at_head(&head,tmp);
}
find_node(head,13,R,RA);
printlist(head);
printlist(RA);
printlist(R);
}
谢谢!
【问题讨论】:
-
我不明白“然后把包含它的 节点 和 节点之前 包含它的节点放在 two 单独的节点”它们已经在两个单独的节点中。
-
是的,我只是想说我想把它们放在另外两个节点中,以便稍后在另一个函数中使用它们。
标签: c list linked-list nodes