Обмен Java-узлами - PullRequest
       11

Обмен Java-узлами

0 голосов
/ 05 ноября 2019

Я хочу поменять 2 узла в Java, вот мой класс узлов

public class Node {

    int  freq;
    Node left,right,parent;
    }

Я хочу поменять 2 узла в моем дереве

public void swap(Node a, Node b){
Node temp;
temp.freq=a.freq;
temp.parent=a.parent;
temp.left=a.left;
temp.right= a.right;

a.freq=b.freq;
a.left=b.left;
a.right=b.right;
a.parent=b.parent;


b.freq=temp.freq;
b.left=temp.left;
b.right=temp.right;
b.parent=temp.parent;
}

, но я обнаружил, что родитель обоих узлов становитсяb.parent любой намек ????

1 Ответ

0 голосов
/ 05 ноября 2019

Глядя на ваш объект, Node temp не указывает ни на что, кроме нуля. Я не знаю, почему ваш компилятор не улавливает эту ошибку, потому что использование точечного вызова для нулевого объекта вызовет исключение nullpointerexception (например, temp.freq; ему не на что будет указывать и на этом этапе нет внутренних переменных). Убедитесь, что temp указывает на новый узел, и попробуйте перейти оттуда.

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