java二叉搜索树

标签 java binary-search-tree

我有一个关于如何从节点(根)中删除子节点的问题?由于我无法调用remove,如果我将 child 设为空,该 child 的 child 会向上移动吗?就像,我会把它初始化为空吗?或者我会指着 child 的 child ?

最佳答案

在传统的二叉搜索树中,删除节点可能会产生不同的后果,具体取决于该节点有多少个子节点:

  • 可以简单地删除没有子节点的节点
  • 可以删除具有一个子节点的节点,并且该节点将由其唯一的子节点替换。无论 child 是左 child 还是右 child ,这都适用。
  • 有两个子节点的规则稍微复杂一些:必须找到要删除的节点的中序后继中序前驱,然后替换当前节点的值与其后继或前驱的值,然后删除后继或前驱(根据这些规则)。

关于java二叉搜索树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1655387/

相关文章:

java - 有没有一种简单的方法可以将迭代器复制到 Java 列表中?

Java 同步与死锁示例

java - 为应用程序创建 Windows 安装程序

与删除 bst 函数中的指针混淆

java - 从二叉搜索树中返回已删除的节点

java - Java中的二叉搜索树遍历(输出不正确)

java - 在添加到二叉搜索树之前对数组进行排序 Java

c - 在二叉搜索树上找到第一个大于 X 的键

java - 从数字字符串 setBackgroundResource 导致 fatal error - Android/Java

java - 无法解析 onCreate 方法中的符号