这是一个作业问题-正在寻求指导!
我有一个对象的LinkedList,在其中我必须接受要删除其“游戏编号”(又称gameId)的测试类中的用户输入。我当前正在遍历节点,当gameId = getGameId()时,我们输入if语句进行交换,并将节点计数减1。我的问题是,我无法正确交换元素!
对象{71、41、31、21}的当前游戏ID。
假设用户输入要删除的游戏编号41,我需要将顺序更改为{71,31,21,41},然后将节点数减少1,这样只有{71,31,21}会显示为用户。
如果我删除31,则会得到期望的输出{71,41,21}!如果删除41,则会得到{71,41,31}。当我删除71时,输出保持不变{71、41、31、21}(我想我需要实现对第0个节点的gameId = getGameId的检查-到目前为止还没有!)< / p>
如何正确进行交换?
在此先感谢您的帮助。
我已经尝试了很多方法,并在Google上搜索了很多,并在这里阅读了先前的问题以尝试找到解决方案,但我仍然无法使交换正常工作。
``` public void deleteByGameId(int gameId, BingoLinkedList list) {
Node<E> previous = head;
Node<E> current = head;
System.out.println("test ");
for (int i = 1; i < list.numberOfItems; i++) {
previous = previous.next;
System.out.println("test: " + ((Bingo) previous.element).getGameId());
if (gameId == ((Bingo) previous.element).getGameId()) {
current = current.next;
current.next = previous.next;
numberOfItems--;
}
}
}
答案 0 :(得分:0)
问题的解决方法是检查if语句中的previous.next.element,然后将current与previous.next交换,将previous.next与current.next交换。