下面标红的行假如不注释掉,本人的程序总是返回NULL。本人是想判断两个节点中能否有空节点。不为空应该不会为NULL啊。
ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2) {
//if(pHead1&&pHead2)return NULL;
ListNode* FindFirstCommonNode( ListNode *pHead1, ListNode *pHead2) {
//if(pHead1&&pHead2)return NULL;
ListNode *tmp1=pHead1;
int m=0;
while(tmp1)
{
m++;
tmp1=tmp1->next;
}
tmp1=pHead1;
int n=0;
ListNode *tmp2=pHead2;
while(tmp2)
{
n++;
tmp2=tmp2->next;
}
}
解决方案
20
if(!pHead1&&!pHead2)return NULL;
原因是你的逻辑就是非空返回NULL
这是逻辑错误
原因是你的逻辑就是非空返回NULL
这是逻辑错误
20
本人也弄错了,哈哈
改成
if(!pHead1 || !pHead2)return NULL;
改成
if(!(pHead1 && pHead2))return NULL;也行
改成
if(!pHead1 || !pHead2)return NULL;
改成
if(!(pHead1 && pHead2))return NULL;也行