什么也不说了,直接上代码。
首先是节点类,大家都懂得
/**
* 二叉树的节点类
*
* @author HeYufan
*
* @param <T>
*/
class Node<T extends Comparable<? super T>>
{
/**
* 节点储存的值
*/
private T data;
/**
* 左子节点
*/
private Node<T> leftNode;
/**
* 右子节点
*/
private Node<T> rightNode;
public Node()
{
this(null);
}
public Node(T data)
{
this.data = data;
this.leftNode = null;
this.rightNode = null;
}
/**
* @return data
*/
public T getData()
{
return data;
}
/**
* @param data
* 要设置的 data
*/
public void setData(T data)
{
this.data = data;
}
/**
* @return leftNode
*/
public Node<T> getLeftNode()
{
return leftNode;
}
/**
* @param leftNode
* 要设置的 leftNode
*/
public void setLeftNode(Node<T> leftNode)
{
this.leftNode = leftNode;
}
/**
* @return rightNode
*/
public Node<T> getRightNode()
{
return rightNode;
}
/**
* @param rightNode
* 要设置的 rightNode
*/
public void setRightNode(Node<T> rightNode)
{
this.rightNode = rightNode;
}
}
/**
* 二叉树的节