0
我在写功能,其目标是在对打印第二列表中,例如:!怎么样!是从不同=
列表: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)`
那么!
与!=
有什么不同呢?
那么,它们是两个不同的操作符。你有什么错误? – David
当我使用相同的代码: 1.while(!temp &&!temp-> next) 2.if(!temp2) 输出与旧列表相同。 例如:1 2 3 4 输出:1 2 3 4 但如果我改变那里2条件与 1.while(temp!= NULL && temp-> next!= NULL) 2.if(temp!= NULL) 它给出了所需的输出: 输入:1 2 3 4 输出:2 1 4 3 – ak4438
请参阅我的答案。它解释了为什么会出现以下错误以及这两个操作员之间的差异 – UmarZaii