package com.dudy.learn01.data_structure.tree;
public class MyBinaryTree {
private Node root;
public Node getRoot() {
return root;
}
static class Node {
private int data;
private Node left;
private Node right;
public Node(int data) {
this.data = data;
}
}
public Node insert(int o) {
Node newNode = new Node(o);
if (root == null) {
root = newNode;
return newNode;
}
Node currentNode = root;
while (true) {
// System.out.println("currentNode: " + currentNode.data );
if (o <= currentNode.data) { // left
if (currentNode.left != null) {
currentNode = currentNode.left;
} else {
currentNode.left = newNode;
// System.out.println("left return ...");
// System.out.println("");
return newNode;
}
} else { // right
if (currentNode.right != null) {
currentNode = currentNode.right;
} else {
currentNode.right = newNode;
// System.out.println("right return ...");
// System.out.println("");
return newNode;
}
}
}
}
public void display(Node root) {
System.out.print(root.data + " ");
if (root.left != null) {
display(root.left);
}
if (root.right != null) {
display(root.right);
}
}
}