我尝试撤消链接列表时遇到问题。链表中的数字是:
9, 0, 14, 7, 1
当我试图扭转它们时,我得到:
7, 14, 0, 9, -842150451.
我想知道为什么我没有得到数字 1 ,但我得到输出 -842150451 。
这是我的displayinReverse()
方法:
void LinkedList::displayinReverse() {
if (first == NULL)
return;
Node *prev = NULL, *current = NULL, *next = NULL;
current = first;
while (current != NULL) {
next = current->next;
current->next = prev;
prev = current;
current = next;
}
first = prev;
}
displayinReverse()
方法的发起:
case 6:
cout << "Elements reversed: ";
myList.displayinReverse();
myList.display();
break;
这是一张图片,显示反转列表1次不起作用,但当我再次反转时,我将获得原始列表:
答案 0 :(得分:0)
您可能想要查看的潜在领域:
Node
方法中构建createNode
对象的方式相关的代码。确保您NULL
正确初始化相应的字段。 first
全局变量的初始化。您的输出似乎表明您开始时first
指向节点中的第二个元素(输出以7
开头,而不是1
)。 display()
方法/函数很可能会超出列表中的最后一个元素(尾部)。需要检查display()
方法/函数的逻辑。 从您的输出检查中,似乎错误的原因可能在步骤2和3中。