因此,我正在尝试创建一种在链表的倒数第二个位置插入节点的方法。
Ex-我想在[1,2,3]列表的倒数第二位放置2,所以我的列表现在应该是[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;
}
答案 0 :(得分:2)
在您要分配prev = node的else语句中,它应该是 prev.next =节点,因为prev是当前倒数第二个,现在是 节点将取代其位置,因此将prev指向node并将节点加入到 链表的最后一个节点。试试这个,应该可以。
first-> prev-> last,现在您的新节点应该在prev和last之间, 所以first-> prev-> node-> last