单链表恢复中的java错误
单链表反转算法中的无限循环。我试着在一张纸上写代码,但还是找不到bug
public void reverse ()
{
Node pointer = list;
Node newList = new Node();
Node temp = new Node();
Node tempMoving = new Node();
if (pointer != null)
{
newList = pointer;
while (pointer.next != null)
{
System.out.println ("loop");
temp = pointer;
pointer = pointer.next;
temp.next = pointer.next;
tempMoving = pointer;
tempMoving.next = newList;
newList = tempMoving;
}
}
list = newList;
}
我设想这个算法要做的是,当它移动到一个新节点时,它会将该节点放在一个新列表的开头,并不断重复,直到到达末尾。但是,它只打印“循环”:(
# 1 楼答案
您只需按如下方式操作即可: