所以我正在尝试创建一个方法,在链表的倒数第二个位置插入一个节点。
前 - 我想把2放在我的[1,2,3]列表的倒数第二位,所以我的列表现在是[1,2,2,3]
我尝试了以下代码,但它似乎不起作用。
public void addSecondToLast(int data){
Node node = new Node();
node.data = data;
node.next = null;
if(top == null){
node = top;
}
if(top.next == null){
node = top.next;
}
else {
Node temp = new Node();
Node prev = new Node();
temp = top;
while(temp.next != null){
prev = temp;
temp = temp.next;
}
prev = node;
node.next = temp;
}
在你要分配prev = node的else语句中,它应该是prev.next = node,因为prev是当前秒到最后一个,现在节点将取代它,所以指向节点并将节点连接到节点链表的最后一个节点。试试这个,它应该工作。
first-> prev-> last,现在你的新节点应该在prev和last之间,所以first-> prev-> node-> last