上述实例代码存在两个bug:
1.在递归调用之前并没有判断当前这个node的左右节点是否为null
2.count数目并不是当前的tree的节点数
如下更改就可以了!!!
private TreeNode insert(TreeNode node, K key, V value) {
if (node == null) {
root = new TreeNode<>(key, value);
count++;
return root;
}
if (key.compareTo(node.getKey()) == 0) {
node.setValue(value);
} else if (key.compareTo(node.getKey()) < 0) {
if (null == node.getLeft()) {
node.setLeft(new TreeNode(key, value));
count++;
return node;
}
insert(node.getLeft(), key, value);
} else {
if (null == node.getRight()) {
node.setRight(new TreeNode(key, value));
count++;
return node;
}
insert(node.getRight(), key, value);
}
return node;
}
xuewuhe
xuewuhe
161***1069@qq.com2个月前 (12-30)