如何在链接列表的最后一个添加值



如何在链表的最后一个添加值。当我运行代码时,addAtLast(( 方法不返回更新的列表。最后一个值(即 50(不会添加到返回的列表中。

public Node addAtLast(Node head, int data) {
Node temp = head;
Node newNode = new Node(data);
while (null != temp)
temp = temp.next;
temp = newNode;
System.out.println(temp);
return head;
}

......

这里 :

temp = newNode;

您将新元素分配给从未与 linkedlist 关联的temp变量,因为分配对变量的引用会使其指向新事物。

此外,您需要停止迭代,因为当前元素没有下一个元素,而不是当前元素null。否则,您不会保留引用最后一个元素的方法,而是null.

你应该写这样的东西:

while (temp.next != null)
temp = temp.next;
// here temp refers the last element of the chain as it doesn't have next element
temp.next = newNode;
temp = newNode;

对原始链表没有影响。

为了在列表末尾添加Node,您必须找到最后一个Node,这是temp.next == null的第一个Node。然后,修改该Nodetemp.next以引用新Node

public Node addAtLast(Node head, int data) {
if (head == null) { // handle adding the first Node
return new Node(data);
}
Node temp = head;
Node newNode = new Node(data);
while (temp.next != null) {
temp = temp.next;
}
temp.next = newNode;
System.out.println(temp);
return head;
}

相关内容

  • 没有找到相关文章

最新更新