Не создается бинарное дерево

238
26 апреля 2018, 11:31

В строке присвоения значения root.data возникает ошибка NullPointerExeption, не могу понять почему.
Метод makeTree должен создавать дерево

private static Node root;
public static void makeTree(String input) {
    Node newNode = new Node();
    newNode.data = input.charAt(0);
    for (int i = 0; i < input.length(); i++) {
        if (root == null && (input.charAt(i) == '*' || input.charAt(i) == '/' || input.charAt(i) == '%')) {
            root.data = input.charAt(i);
            root.leftChild.data = input.charAt(i - 2);
            root.rightChild.data = input.charAt(i - 1);
            removeCharAt(input, i);
            removeCharAt(input, i - 1);
            removeCharAt(input, i - 1);
        }
        if (input.charAt(i) == '*' || input.charAt(i) == '/' || input.charAt(i) == '%') {
            root.rightChild = root;
            root.data = input.charAt(i);
            root.leftChild.data = input.charAt(i - 1);
            removeCharAt(input, i);
            removeCharAt(input, i - 1);
        }
        if (input.charAt(i) == '+' || input.charAt(i) == '-') {
            root.rightChild.data = root.data;
            root.data = input.charAt(i);
            root.leftChild.data = input.charAt(0);
            removeCharAt(input, i);
            removeCharAt(input, 0);
        }
    }
}

Класс Node

public class Node {
int data;
Node leftChild;
Node rightChild;
}
Answer 1
 if (root == null && (input.charAt(i) == '*' || input.charAt(i) == '/' || input.charAt(i) == '%')) {
        root.data = input.charAt(i);

Вы же сами сначала проверяете root на null, а потом сразу же обращаетесь к полю этого самого root. Не хватает инициализации объекта, что-то вроде root = new Node().

READ ALSO
java, write to file, unicode

java, write to file, unicode

У меня возникла проблема

174
не работает margin на реальном устройстве

не работает margin на реальном устройстве

Проблема: в эмуляторе студии margin работает, а вот на планшете нет, в чем может быть заковырка?

187
Как узнать &ldquo;data-key&rdquo; value из тега &ldquo;tr&rdquo; используя Selenium Webdriver + Java?

Как узнать “data-key” value из тега “tr” используя Selenium Webdriver + Java?

Мне нужно узнать "data-key" элемента в таблице("Some name" на скриншоте) который завернут в тег "td"Можно это сделать используя Selenium WD + Java?

137
Проблема при сборке проекта на Cordova

Проблема при сборке проекта на Cordova

Пишу программу на CordovaХочу запустить ее в эмуляторе

158