Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅显示第一个节点的链接列表_Java - Fatal编程技术网

Java 仅显示第一个节点的链接列表

Java 仅显示第一个节点的链接列表,java,Java,我试图创建一个链接列表,其中head作为指向列表起始节点的节点。并将n元素添加到列表的尾部。但是当试图显示列表时,我只得到第一个元素作为输出 比如说,, 输入 import java.io.*; import java.util.*; class Node { int data; Node next; Node(int d) { data = d; next = null; } } class practice {

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

比如说,, 输入

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);
    }
}

当输出应该是
456
时,输出是
4
insert
方法在
头部已经存在的情况下无法插入任何节点。它创建一个新的
节点
,但随后将忽略它

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

3
4
5
6

如果
已经存在,则您的
插入
方法无法插入任何节点。它创建一个新的
节点
,但随后将忽略它

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

3
4
5
6

试过了!仍然将第一个元素作为输出!在提交输入后(意思是3项--4,5,6),我通过修改得到了预期的输出-
4 5 6
。耶!知道了!犯了个错误!试过了!仍然将第一个元素作为输出!在提交输入后(意思是3项--4,5,6),我通过修改得到了预期的输出-
4 5 6
。耶!知道了!犯了个错误!