ツリーノードのArrayList(ブランチという名前)を保持するTreeNodeクラスを作成しました。ユーザーが入力したパスによって、ツリーに新しいブランチを追加したいと思います。パスの例は/Monkey/ King / Barで、最後のブランチを除いて、それぞれが既存のブランチであることが理想的です(BarはKingに追加したいブランチです)。Tempは、ツリーに新しいブランチを追加するために使用するグローバル変数です。再帰を使用して、各ブランチが前のブランチの子であることを検証するパスを下に移動しようとしていますが、動作させるのに問題があります。これは私がこれまでに持っていたものであり、一時TreeNodeを再宣言するときに親を設定しないことと関係があるのではないかと考えていました。助けていただければ幸いです。私が言ったことが曖昧すぎる場合は、説明を求めてください。
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 = "";
}