子节点比较两次的问题,这样会不会好一点?
来源:6-4 改进添加操作:深入理解递归终止条件

whatevernames
2019-02-24
private void add(Node node, E e) {
if(e.equals(node.e)) {
return;
} else if(e.compareTo(node.e)<0) {
if(node.right == null) {
node.right = new Node(e);
size ++;
return;
}else {
add(node.right,e);
}
}else if(e.compareTo(node.e)>0){
if(node.left ==null) {
node.left = new Node(e);
size ++;
return;
}else {
add(node.left,e);
}
}
}
这样会不会好一点?
写回答
1回答
-
liuyubobobo
2019-02-24
可以的,但是这个代码的逻辑显然比我在课程中的代码更复杂:)
private Node add(Node node, E e){ if(node == null){ size ++; return new Node(e); } 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; }
00
相似问题