после завершения конструктора объект реализации tr ie является нулевым - PullRequest
0 голосов
/ 28 марта 2020

Я пытаюсь реализовать здесь структуру tr ie. Проблема в том, что nullcheck показывает root == null после завершения работы конструктора, поэтому я не могу продолжать поиск tr ie. Как мне изменить конструктор, чтобы root содержал всю информацию?

public class BoggleSolver {

    protected letterNode root;

    protected class letterNode {

        protected Integer value;
        protected letterNode[] next;

        protected letterNode() {
            value = null;
            next = new letterNode[26];
        }
    }

    public BoggleSolver(String[] dictionary) {

        letterNode root = new letterNode();

        for (String word : dictionary) {       
            if (word.length() > 2) {
                plantTrie(root, word, 0);   
            }
        }
    }

    public void plantTrie(letterNode node, String word, int i) {
        int letterIndex = i;

        if (letterIndex < word.length()) {
            if (node.next[word.charAt(letterIndex) - 'A'] == null) {
                node.next[word.charAt(letterIndex) - 'A'] = new letterNode();
                if (letterIndex == word.length() - 1) {
                    node.next[word.charAt(letterIndex) - 'A'].value = scoreOf(word);
                }

            } else {
                if (letterIndex == word.length() - 1) {
                    node.next[word.charAt(letterIndex) - 'A'].value = scoreOf(word);
                }
            }

            plantTrie(node.next[word.charAt(letterIndex) - 'A'], word, letterIndex + 1);
        }

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