【发布时间】:2018-11-06 18:11:50
【问题描述】:
我想递归地插入一个新节点,然后从函数 insertRec 返回那个新插入的节点。函数调用如下所示
void insert(int value) {
root = insertRec(root, null, value);
root = insertRec(root, null, 15);
root = insertRec(root, null, 6);
root = insertRec(root, null, 5);
root = insertRec(root, null, 3);
root = insertRec(root, null, 4);
//insertFixup(newNode);
}
RedBlackNode insertRec(RedBlackNode current, RedBlackNode prev, int value)
{
if(current == null) {
current = new RedBlackNode(value);
current.p = prev;
}
else if(current.key < value) {
current.right = insertRec(current.right, current, value);
}
else {
current.left = insertRec(current.left, current, value);
}
return current;
}
如何在确保insertRec 正常工作的同时做到这一点?现在,如果我不从insertRec 返回current,那么我将无法正确创建树。
【问题讨论】:
标签: java recursion binary-search-tree red-black-tree