我创建了一个TreeNode类,它包含树节点(命名分支)的ArrayList,并且我想通过用户输入的路径将新分支添加到树中。一个示例路径是/ Monkey/King/Bar,其中每个理想情况下都是现有分支,但最后一个分支(Bar将是我想添加到King的分支)。 Temp是一个全局变量,用于向树中添加新的分支并使用递归我试图沿着验证每个分支是前一个分支的孩子的路径移动,并且在使它工作时遇到了一些麻烦。这是我到目前为止所想知道的,当我重新声明临时树节点时,是否与设置父节点有关。任何帮助将不胜感激,如果我说的话太模糊,请要求澄清。无法检查输入到树中的有效路径(字符串)
TreeNode tree = root;
boolean valid = false;
String y = x; //User entered path
for (int i = 0; i < x.length(); i++)
{
if (x.charAt(i) == '/')
{
for (int j = 0; j < tree.branch.size(); j++){
if (tree.branch.get(j).toString().equals(y)){
System.out.println(temp.value);
tree = tree.branch.get(j);
temp = tree;
valid = true;
}
else
valid = false;
}
y = "";
}
你对这条线有什么期待? if(tree.branch.get(j).toString()。equals(y)) 是不是y不存在的完整字符串/ Monkey/King/Bar?你不应该比较一些y的范围吗? – rooftop
当您尝试使用此代码时会发生什么?它与你希望发生的事情有什么不同? “让它工作起来有点麻烦”,很模糊...... –
你有没有注意到''i'没有在你的循环体内的任何地方使用,除非你检查'x.charAt(i)'是否是' /'?特别是,你没有做任何事情来从'x'中提取任何子字符串。你不是吗? –