我的理解是先用calloc把一个数组的值全设为0,接着把这个数组中下标为给定数组nums中的值改成1。接着再用下标为head的数组进行遍历。
int numComponents(struct ListNode* head, int* nums, int numsSize) {
int icount =0, flag =0;
int* num = (int*)calloc(10000,sizeof(int));
for(int i =0; i<numsSize;i++)
{
num[nums[i]] = 1;
}
while(head)
{
if(num[head->val])
{
if(flag == 0)
{
icount++;
}
flag = 1;
}
else
{
flag = 0;
}
head = head->next;
}
return icount;
}