这个逻辑错误在哪?
len1和len2是两个集合pHead1和pHead2的长度我写的求这两个集合的交集,赋给一个新链表,不知道为什么到第一个if那儿出错了
PNODE dcc2(PNODE pHead1, int len1, PNODE pHead2, int len2)
{
int i, j, k = 0;
PNODE pHead = (PNODE)malloc(sizeof(NODE));
PNODE pTail = pHead;
pTail->pNext = NULL;
PNODE p1 = pHead1->pNext;
PNODE p2 = pHead2->pNext;
for(i=0; i<len1; i++)
{
for(j=0; j<len2; j++)
{
if (p1->data == p2->data)
{
break;
}
k++;
p2 = p2->pNext;
}
if (k != len2)
{
PNODE pNew = (PNODE)malloc(sizeof(NODE));
pNew->data = p1->data;
pTail->pNext = pNew;
pNew->pNext = NULL;
pTail = pNew;
}
k = 0;
p1 = p1->pNext;
}
return pHead;
}
[解决办法]
单步调试哪里报什么错误?
[解决办法]
看下data类型,有些类型无法直接相等操作
还有链表2处理有问题,会一直指向到尾,死在尾部
[解决办法]
i那个for循环第一遍遍历,p1的第一个元素和p2的所有元素都比较了,但是第二遍遍历的时候,p2没有指回到pHead2中的相应位置,指针乱指,所以应该是第二遍遍历会有问题
[解决办法]
出什么错误了?单步调试一下。