Проблема с доступом к ссылке в ArrayList - PullRequest
0 голосов
/ 24 октября 2019

Невозможно добавить новый элемент (узел) в ArrayList

Node N = new Node(5,"Sandeep");
Node N1 = new Node(5,"qwert");

В строке ниже я получаю исключение нулевого указателя

N.children.add(N1)

Код:

class Node {
    public int val;
    public String data;
    public ArrayList<Node> children;

    public Node(int val, String data) {
        this.val = val;
        this.data = data;
        ArrayList<Node> children = new ArrayList<Node>();
    }
}

public class Nary {
    public static void main(String[] args) {            
       // ArrayList<Node> children = new ArrayList<Node>();
        Node N = new Node(5,"Sandeep");
        Node N1 = new Node(5,"qwert");
        N.children.add(N1);
    }
}

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Измените это в своем коде

class Node {

    public int val;
    public String data;
    public ArrayList<Node> children;

    public Node(int val, String data) {
        this.val = val;
        this.data = data;
        this.children = new ArrayList<Node>();
    }

}
0 голосов
/ 24 октября 2019

В конструкторе Node вы создаете новый локальный атрибут потомков. Если вы измените ниже в конструкторе, он будет работать нормально this.children = new ArrayList ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...