【发布时间】:2020-01-09 13:40:27
【问题描述】:
这个函数应该检查 list1 是否包含在列表 2 中,并且在这种情况下返回 1。我不确定为什么我总是得到输出 0。 欢迎所有反馈。
typedef struct node {
int data;
struct node *next;
} *list;
int contains (list l1, list l2)
{
int check;
while(l1 != NULL){
check = 0;
while(l2 != NULL){
if(l1->data == l2->data)
check = 1;
l2 = l2->next;
}
if(check == 0)
return 0;
l1 = l1->next;
}
return 1;
}
【问题讨论】:
-
您是否使用调试器进行过检查?在检查 l1 的第一个元素之后,您没有将 l2 指针重置为列表的开头。
-
@johnelemans 就是这样!谢谢!
标签: c function struct linked-list singly-linked-list