Подскажите, пожалуйста, где я ошибаюсь? - PullRequest
0 голосов
/ 02 августа 2020

findrightsiblings берет ссылку на узел и возвращает его правого брата, т. Е. Крайний левый узел на своем уровне справа. Это вызывает исключение нулевого указателя. Пожалуйста, помогите.

public static Node find(Node root, int k) {
    if (root == null)
        return null;

    if (k == 0)
        return root;

    Node m = find(root.left, k - 1);

    if (m == null)
        m = find(root.right, k - 1);

    return m;
}

public static Node findRightSibling(Node node) {
    Node y = node.parent;
    int count = 1;

    while (true) {
        if (y.right != null) {
            Node js = find(y.right, count - 1);

            if (js != null)
                return js;
        }

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