package com.coding.basic; public class BinaryTreeNode { private Object data; private BinaryTreeNode left; private BinaryTreeNode right; 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){ if(this.data == null){//根节点为空 this.data = o; }else{//根节点非空 BinaryTreeNode pres = this; BinaryTreeNode insertNode = new BinaryTreeNode(); insertNode.setData(o); while(pres != null){ if((int)o < (int)pres.data){//插入值<当前值,pres向左移动,或者将插入节点挂在当前节点左边 if(pres.left == null){ pres.left = insertNode; break; } pres = pres.left; }else{//插入值>=当前值,pres向右移动,或者将插入节点挂在当前节点右边 if(pres.right == null){ pres.right = insertNode; break; } pres = pres.right; } } } return null; } public void print(){ if(this.data == null){ return; }else{ if(this.left !=null){ this.left.print(); } System.out.print(this.data); System.out.print(" "); if(this.right != null){ this.right.print(); } } } }