太古怪了!
int MyList::FindNode(int num)
{
NODE *p;
p=head;
while(p-> num!=num&&p!=NULL)
p=p-> next;
if(p==NULL) return 0;
if(p-> num==num) return 1;
}
在main函数中调用时:
int r=obj.FindNode(1);
cout < <r;
只要传入的num参数在单链表中没有,运行时vc++就会报错!
如果传入的num参数在单链表中有的话,就不会出错!
太古怪了!
[解决办法]
没看出来有问题~
while((p-> num != num)&& (p! = NULL))
不过感觉也不应该是&&陷阱啊~
[解决办法]
你的单链表里面最后让他的next = NULL;了吗?
[解决办法]
while((p-> num != num)&& (p! = NULL))
======================================
你要先判断是否到了末尾,否则会出现相当于NULL-> num这样的访问,自然出错.
while((p! = NULL) &&(p-> num != num) )
[解决办法]
我来中和一下 o(∩_∩)o...
你的单链表里面最后让他的next = NULL;了吗?
你要先判断是否到了末尾,否则会出现相当于NULL-> num这样的访问,自然出错.
while((p! = NULL) &&(p-> num != num) )
[解决办法]
A_B_C_ABC正解
不过我建议
p=head;
while(p-> num!=num&&p!=NULL)
p=p-> next;
改为:
p=head;
while( p )
{
if( p-> num==num )
{
break;
}
p = p-> next;
}
这样代码看起来更罗嗦,但思路更清晰,不容易出错.