我正在编写的功能目标是以两对打印列表,例如:
列表:1 2 3 4 5 6
对名单:2 1 4 3 6 5
我写了以下代码:
printPair(){
bool flag = 1;
node *temp = new node();
node *temp2 = new node();
temp2 = NULL;
if(!head)
{
printf("Empty List!!");
return 0;
}
temp = head;
while(!temp && !temp->next) //Error here 1.
{
if(!temp2) //Error here 2.
temp2->next->next = temp->next;
temp2 = temp->next;
temp->next = temp->next->next;
temp2->next = temp;
if(flag)
{
head = temp2;
flag = 0;
}
temp = temp->next;
}
}
如果替换为:
,它可以正常工作1. `while(temp !=NULL && temp->next !=NULL)`
2. `if(temp2 != NULL)`
那么!
与!=
有什么不同?
答案 0 :(得分:0)
while(!temp){}
将执行。
while(temp != null)
将执行
(如果temp为真,它也会通过)
你想使用while(temp!= null),因为你遵循 - >下一次引用,直到你到达列表中的最后一项(temp-> next next wherehere)