gpt4 book ai didi

java - Java中的BST递归实现

转载 作者:行者123 更新时间:2023-11-30 07:31:07 25 4
gpt4 key购买 nike

我不知道为什么我需要再次分配node.left = insert(node.left, data),因为我已经使用node = new BNode(data)分配了它.

private BNode insert(BNode node, int data) { 
if (node == null) {
node = new BNode(data);
}
else if (node.data < data) {
node.left = insert(node.left, data);
}
else if (node.data > data) {
node.right = insert(node.right, data);
}
return node;
}

最佳答案

在二叉搜索树中,您必须将任何新元素作为叶子放置。您的代码首先检查我们当前是否正在查看节点,如果是,则在此处插入我们的数据。否则,我们需要继续沿着 Twig 向下移动,直到到达叶子。因此,我们在左分支或右分支上调用此函数(取决于节点中的数量和数据)。我们的方法是调用node.left 或node.right 上的函数。如果子节点为空,那么我们想说现在我们的子节点就是我们刚刚插入的新节点。

如果子节点不是叶子,则通过返回原始子节点,此分配将不会执行任何操作。它只是通过说来做某事

node = new BNode(data);

因此,上一次调用此方法将是唯一将其左子或右子更改为当前新叶子的时间,而所有其他左子和右子都保持原样。

关于java - Java中的BST递归实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36122094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com