这里有两个链表'list 1'和'list 2'。
其中list 1和list 2有两个数据:data1,data2。
它们有以下节点:(data1,data2)
列表1:(1,1)-(2,2)列表2:(3,3)-(4,4)-(5,5)
(括号表示每个节点)
while (list2 != NULL)
{
while (list1 != NULL)
{
printf("list1 contains : %d, %f\n", list1->data1, list1->data2);
list1 = list1->NextNode;
}
printf("list2 contains : %d, %f\n", list2->data1, list2->data1);
list2 = list2->NextNode;
}
首先,我期望输出为:
list 1,list 1,list 2,list 1,list 1,list 2,list 1,list 1,list 2(我的意思是打印顺序)
但我得到了
列表1,列表1,列表2,列表2,列表2。
所以我的问题是
1.为什么我的期望落空了?
1.我应该如何改变我的代码,使代码像我期望的那样工作?
谢谢
1条答案
按热度按时间4ioopgfo1#
在第一次执行内部while循环之后(它的第一次和单次迭代)
指针
list1
变为等于NULL
。然后在执行内部while循环后的代码后,指针list2
也等于NULL
。因此两个while循环只有一次迭代。