gpt4 book ai didi

java - 链表只显示第一个节点

转载 作者:行者123 更新时间:2023-12-01 18:07:52 24 4
gpt4 key购买 nike

import java.io.*;
import java.util.*;

class Node {
int data;
Node next;

Node(int d) {
data = d;
next = null;
}

}

class practice {
public static Node insert(Node head, int d) {
if (head == null)
head = new Node(d);
else {
Node cn = head;
while (cn != null) {
cn = cn.next;
cn = new Node(d);
cn = cn.next;
}
}
return head;
}

public static void display(Node head) {
Node start = head;
while (start != null) {
System.out.print(start.data + " ");
start = start.next;
}
}

public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
Node head = null;
int N = sc.nextInt();
while (N-- > 0) {
int ele = sc.nextInt();
head = insert(head, ele);
}
display(head);
}
}

我试图创建一个链表,其头作为指向列表起始节点的节点。并将 n 元素添加到列表的尾部。但是当尝试显示列表时,我只得到第一个元素作为输出。

例如,对于输入

3
4
5
6

输出是 4,而它应该是 4 5 6

最佳答案

head 已存在的情况下,您的 insert 方法无法插入任何节点。它创建一个新的Node,但随后忽略它。

相反,搜索列表的末尾,寻找 null next 引用。然后,将 next 引用设置为新的 Node

else
{
Node cn = head;
while (cn.next != null)
{
cn = cn.next;
}
cn.next = new Node(d);
}

关于java - 链表只显示第一个节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34908423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com