为什么程序返回 5 作为根值,尽管“root”已使用“new Node(val)”更新?它不应该指向最后一个数组值吗?

问题描述 投票:0回答:1

enter image description here

我想了解为什么尽管更新了“root”变量,它始终返回 5。代码逻辑或数据结构处理似乎可能导致此行为,我正在寻找见解来确定问题的根本原因。

java recursion binary-tree binary-search-tree
1个回答
0
投票

根据您的代码,这就是我注意到的。

  • 循环遍历值数组并调用函数“插入”
  • 第一个值创建一个数据值为 5 的节点
  • 第二个值创建数据值 1 的左节点
  • 第三个值将数据值1的左节点替换为3

注意: 根仍然指向值 5,左节点现在已被数据值 3 的节点替换

  • 第四个值将左侧节点上的 3 替换为 4。
  • 第五个值将左侧节点上的 4 替换为 2。
  • 第六个也是最后一个值创建数据值为 7 的右节点

现在有 3 个节点,root 指向的节点,其数据值始终为 5,以及左节点和右节点,分别为 2 和 7。

© www.soinside.com 2019 - 2024. All rights reserved.