У меня проблемы со сменой узлов между двумя двоичными деревьями.
Я пытаюсь поменять местами текущий узел с переданным узлом в дереве, но я не могу понять, как;Я могу только поменять местами родительские узлы, но не сами узлы.Кто-нибудь может дать мне какое-то направление?
public void swap(Node node) {
if(this.equals(this.parent.leftChild)){
Node tempNodeR = node.parent.rightChild;
System.out.println("Is a left child");
node.parent.rightChild = this.parent.leftChild;
this.parent.leftChild = tempNodeR;
}
else{
Node tempNodeL = node.parent.leftChild;
System.out.println("Is a right child");
node.parent.leftChild = this.parent.rightChild;
this.parent.rightChild = tempNodeL;
}
}
Calling node2.swap(node4):
Given Tree:
1 3
/ \
2 4
Resulting Tree (unchanged):
1 3
/ \
2 4
Expected Tree:
1 3
/ \
4 2