二分木を実装しようとしていますが、ルートを取得していません。何か案は?ルートが正常に挿入されているように見えますが、印刷すると null が表示されます。「固執」しない一時ノードのみをツリーに追加しようとしていますか?
public class tree {
public static void main(String args[]){
Treeb tree = new Treeb();
tree.add(10);
tree.add(20);
tree.add(2);
tree.add(6);
tree.printTree();
}
}
class Node{
int data;
Node left;
Node right;
public Node(int data){
this.data = data;
left = null;
right = null;
}
Node getLeft(){
return left;
}
Node getRight(){
return right;
}
}
class Treeb{
Node root;
Treeb(){
root = null;
}
void add(int n){
addNode(n, root);
}
void addNode(int n, Node vert){
if(vert == null){
vert = new Node(n);
}
else if(vert.left.data < n){
if(vert.left == null){
vert.left = new Node(n);
}
else{
addNode(n, vert.left);
}
}
else if(vert.right.data >= n){
if(vert.right == null){
vert.right = new Node(n);
}
else{
addNode(n,vert.right);
}
}
}
void printTree(){
if(root != null){
printChild(root);
}
System.out.println(root);
}
void printChild(Node leaf){
System.out.print(leaf.data);
if(leaf.left != null){
printChild(leaf.getLeft());
}
if(leaf.right != null){
printChild(leaf.getRight());
}
}
}