我正在编写一个代码,用于查找指定节点的父节点(在BST中)。我写了它,但它不起作用!我使用Java使用Eclipse,我得到了这个错误:
"parent" cannot be resolved to a variable.
我想知道如何解决这个问题? (我是java的新手,提前谢谢)
有我的代码:
public TreeNode<E> getParent(TreeNode<E> node) {
TreeNode<E> parent = null;
TreeNode<E> current = root;
while (current != null) {
if (((Comparable<E>)node).compareTo((E)current) < 0) {
parent = current;
current = current.left;
} else if (((Comparable<E>) node).compareTo((E)current) > 0) {
parent = current;
current = current.right;
} else {
break;
}
}
size++;
return parent;
}
答案 0 :(得分:0)
根据你的评论,&#34;它出现在我写道:System.out.print("\nthe parent of" + list.search(5) + parent)
&#34;事实上,这一行没有出现在你在问题中发布的方法中,结论是:
您正尝试在其他位置访问方法的局部变量 - 例如在另一种方法中。你应该了解范围。搜索它。好的起点是Aniket评论中的链接。
快速解决您的问题:您似乎想在树中打印特定节点的父级。因此,您已经编写了完全返回父级的方法getParent
。您无法访问父变量(因为它仅在方法执行期间已知),但您可以使用该方法的返回值:
TreeNode node = list.search(5); // didn't use type parameter here
System.out.print("The parent of " + node + ": " + getParent(node));