package com.github.fei9009.coding2017.basic; public class BinaryTreeNode <Object extends Comparable<Object>> { private Object data; private BinaryTreeNode left; private BinaryTreeNode right; public BinaryTreeNode(Object o) { data = o; left = null; right = null; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public BinaryTreeNode getLeft() { return left; } public void setLeft(BinaryTreeNode left) { this.left = left; } public BinaryTreeNode getRight() { return right; } public void setRight(BinaryTreeNode right) { this.right = right; } public BinaryTreeNode insert(Object o){ BinaryTreeNode node = new BinaryTreeNode(o); boolean left = true; BinaryTreeNode cur = this; BinaryTreeNode pre = null; while (cur != null) { pre = cur; if (node.getData().compareTo(cur.getData()) <= 0) { cur = cur.left; left = true; } else { cur = cur.right; left = false; } } if(left) { pre.left = node; } else { pre.right = node; } return node; } }