【发布时间】:2010-04-08 02:24:25
【问题描述】:
谁能给我一个代码示例(最好是java)或使用递归返回一个子树的伪代码,该子树包含所有节点,键在fromKey和toKey之间。
因此,如果我要调用 Tree.subtree(5,10),它应该返回 BST 中键在 5 到 10 之间(含 5 到 10)的所有节点——但我不能使用循环或辅助方法……只能递归调用到子树方法,它以fromKey和toKey为参数。
谢谢!
更新:
我尝试了以下不起作用:
public Tree subtree(int from, int to) {
left.subtree(from, to);
right.subtree(from, to);
if (this.key < from || this.key > to) {
this.delete(this.key);
}
return this;
}
我认为问题在于它返回得太早。我想要做的是遍历树上的每个节点,并删除任何不属于该范围的节点。我在正确的轨道上吗?
【问题讨论】:
标签: java binary-tree