两个链表节点相与

C++语言 码拜 8年前 (2016-09-12) 1106次浏览
 下面标红的行假如不注释掉,本人的程序总是返回NULL。本人是想判断两个节点中能否有空节点。不为空应该不会为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
这是逻辑错误

20

本人也弄错了,哈哈
改成
if(!pHead1 || !pHead2)return NULL;
改成
if(!(pHead1 && pHead2))return NULL;也行

引用:

if(!pHead1&&!pHead2)return NULL;
原因是你的逻辑就是非空返回NULL
这是逻辑错误


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明两个链表节点相与
喜欢 (0)
[1034331897@qq.com]
分享 (0)