【发布时间】:2020-08-15 20:48:43
【问题描述】:
处理大学作业,需要比较树中的节点并计算满足特定条件的节点。我可以看到如何迭代地执行此操作,使用堆栈遍历树等,但我确信讲师正在寻找递归解决方案,而我正在努力解决这个特定的实现。
我目前(有缺陷的)实现是:
public int traverseIncrement(User user, User reference) {
if(user == null)
return 0;
int count = 1;
if (user.getLeft() != null) {
if(user.getLevel() > reference.getLevel()) {
count += traverseIncrement(user.getLeft(), reference);
}
}
if (user.getRight() != null) {
if(user.getLevel() > reference.getLevel()) {
count += traverseIncrement(user.getRight(), reference);
}
}
return count;
}
有两个明显的问题,第一个是第一个节点永远不会被评估,第二个是我总是比所需的输出高一个。任何朝着正确方向轻推都会有所帮助!
【问题讨论】:
标签: java recursion binary-search-tree