为什么我收到此消息[“变量名称”无法解析为变量]?

时间:2014-04-04 05:28:25

标签: java eclipse variables binary

我正在编写一个代码,用于查找指定节点的父节点(在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;

}

1 个答案:

答案 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));