Я пытаюсь создать двоичное дерево, в котором левый узел будет меньше, а правый узел больше.
Я застрял, как действовать дальше.
Код
public class Node {
public int keyValue;
public Node leftNode;
public Node rightNode;
public Node(int nodeNum) {
this.keyValue = nodeNum;
this.leftNode = this.rightNode = null;
}
}
BinaryTree
import java.util.Scanner;
public class BinaryTree {
public Node root;
BinaryTree() {
root = null;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int nodeCounts = in.nextInt();
int[] nodes = new int[nodeCounts];
for (int i = 0; i < nodeCounts; i++) {
nodes[i] = in.nextInt();
}
BinaryTree bt = new BinaryTree();
bt.createBinaryTree(nodes);
}
public void createBinaryTree(int[] nodeValues) {
for (int i = 0; i < nodeValues.length; i++) {
this.attachNodes(new Node(i));
}
}
public void attachNodes(Node node) {
if (this.root == null) {
this.root = node;
}
else if (this.root.leftNode == null) {
}
else if (this.root.rightNode == null) {
}
}
}
Не понимаю, как добраться до точки, где узел имеет нулевое значение, и соответствующим образом разместить значение рекурсивно.
Как мне добраться до последнего уровня, где значение узла равно нулю? Когда я доберусь туда, я смогу разместить значения моего узла.
Подскажите пожалуйста.