找不到Java链接列表头

时间:2018-10-09 23:11:34

标签: java linked-list

尝试创建一个空的链接列表。为了创建空列表,我创建了一个内部类Node并将其设为静态,以便主类可以访问它。

import java.util.LinkedList;

public class Addtwo {
static class Node {
    int data;
    Node next;
    Node head;

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

        public static void main (String args[])
        {
            /* Start with the empty list. */
            LinkedList llist = new LinkedList();

            llist.head = new Node(1);
            Node second = new Node(2);
            Node third = new Node(3);
            llist.head.next = second;
            second.next = third;
        }

    }
}

它找不到我在内部类Node中创建的节点头。该如何解决?

错误:

  Error   :(22, 22) java: cannot find symbol
  symbol  : variable head
  location: variable llist of type java.util.LinkedList

1 个答案:

答案 0 :(得分:0)

首先,如果您想使用JDK的LinkedList,则不需要管理列表的节点,该工作已经实现。您只需要这样做:

LinkedList<Integer> llist = new LinkedList<Integer>();
llist.add(1);
llist.add(2);
llist.add(3);

还有更多功能here

第二,如果您想实现自己的链接列表(我想这就是您想要的),则无需使用JDK的LinkedList,您可以从以下基本代码开始:

public class Addtwo {
    static class Node {
        int data;
        Node next;

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

        public static void main(String args[]) {
            /* Start with the empty list. */
            Node head = new Node(1);
            Node second = new Node(2);
            Node third = new Node(3);
            head.next = second;
            second.next = third;

            Node iterator = head;
            while (iterator != null) {
                System.out.println(iterator.data);
                iterator = iterator.next;
            }
        }
    }
}

PS:您不需要为每个节点存储一个头。您可能需要另一个类LinkedListManager来实现某些方法并存储列表的开头和结尾。