通过递归方法向二叉树中添加元素:
- 先创建一个public的add方法,使用户可以调用add方法,传入需要添加的值
//向二分搜索树添加一个新元素
public void add(E e) {
root=add(root,e);
}
- 再创建一个private的add方法,进行递归寻找插入点
- 传入add就对结点node进行一次判断:判断结点node是否为空,若空,就创建新结点与之相连并返回结点
- 再根据传入数字的大小判断向左还是向右移动
private Node add(Node node,E e) {
if( node==null) {
node=new Node(e);
return node;
}
if(e.compareTo(node.e)<0) {
node.left=add(node.left,e);
}
else if(e.compareTo(node.e)>0) {
node.right=add(node.right,e);
}
return node;//return前不能加else,否则编译器判错
}
注意:为保证一定会有返回值,最后的return node前不能加else语句,但依旧是if - else if - else 句式