package com.coding.basic; public class BinaryTreeNode<T extends Comparable<T>> { private T data; private BinaryTreeNode<T> left; private BinaryTreeNode<T> right; public Object getData() { return data; } public void setData(T data) { this.data = data; } public BinaryTreeNode<T> getLeft() { return left; } public void setLeft(BinaryTreeNode<T> left) { this.left = left; } public BinaryTreeNode<T> getRight() { return right; } public void setRight(BinaryTreeNode<T> right) { this.right = right; } public void insert(T t) { BinaryTreeNode<T> node = new BinaryTreeNode<>(); node.setData(t); compare(this, node); } private void compare(BinaryTreeNode<T> targetNode, BinaryTreeNode<T> insertNode) { if (targetNode.data.compareTo(insertNode.data) < 0) { if (targetNode.left != null){ compare(targetNode.getLeft(), insertNode); } else { targetNode.left = insertNode; } } else { if (targetNode.right != null) { compare(targetNode.getRight(), insertNode); } else { targetNode.right = insertNode; } } } }