主要用到递归思想,自己调用自己,第一个问题以来于第二问题的解决,第二个依赖于第三个。。。以此类推,当最后一个问题解决时,前面的问题都将解决。
设计二叉树类,其中左右子树属性是其本身类
package beans;
import java.util.ArrayList;
import java.util.List;
public class binaryTree {
private Object rootnode;
private binaryTree leftchild;
private binaryTree rightchild;
//构造方法初始化
public binaryTree() {
this.rootnode= null;
this.leftchild=null;
this.rightchild=null;
}
public void add(Object value) {
//如果节点值为null,则把传进来的值赋值给节点
if (rootnode==null) {
rootnode=value;
}else {
//如果节点有值,则进行比对,如果小于或者等于节点值,进入下一环
if ((Integer)rootnode>=(Integer)value) {
/*如果左子树为空,则又新建一个三个属性都为null的二叉树对象给左子树,,
用递归的思想,将value值传递给节点(整个递归中每一个环的左子树一直为空)*/
if (null == leftchild){
leftchild = new binaryTree();}
//左子树不为空,则将值与子树的节点对比,对比后发现其左子树又为空,重复上