我很难实现一个程序来从 b-tree root 中找到一个节点的路径,该路径是 5 的倍数。
例子:
12
/ \
4 7
/\ /\
5 3 4 10
将其视为树。程序应该打印
12 -> 4 -> 5
12 -> 7 -> 10
编辑:
是的,我已经尝试过,以下是我正在关注的算法:我按顺序遍历并比较 5 的倍数的值。如果是,我开始在 LinkedList 中添加节点并返回该列表。但是这种方法只有在我有一个 5 的倍数时才有效。如果有更多的倍数,它就会失败。
以下是我尝试过的:
LinkedList<Integer> getPaths(Node parent, int multiple){
if(parent == null)
return null;
LinkedList list = new LinkedList();
list = getPaths(parent.getLeftChild(), 5);
if(parent.getSID() % multiple == 0){
list.add(parent.getSID());
return list;
}
list = getPaths(parent.getRightChild(),5);
if(list != null)
list.add(parent.getSID());
return list;
}