Как отобразить путь от корня до узла x, используя этот метод: pathOf (TreeNode <E>x) - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь распечатать путь от корня до указанного узла. Но проблема здесь в том, что я должен использовать узел в параметре, как: public ArrayList> pathOf (TreeNode x)

Я пробовал это:

public java.util.ArrayList<TreeNode<E>> pathOf(TreeNode<E> x) {
    ArrayList<TreeNode<E>> list = new ArrayList<TreeNode<E>>();
    TreeNode<E> current = root; // Start from the root

    while (current != null) {
        list.add(current); // Add the node to the list
        if (x.element.compareTo(current.element) < 0) {
            current = current.left;
        } else if (x.element.compareTo(current.element) > 0) {
            current = current.right;
        } else {
            break;
        }
    }

    return list; // Return an array of nodes
}

Когда явызов метода: System.out.println ("path of:" + tree.pathOf (66));

Я получаю это сообщение: несовместимые типы: int нельзя преобразовать в TreeNode

Спасибо заранее

1 Ответ

2 голосов
/ 17 октября 2019

При вызове pathOf(TreeNode<E> x) ожидается переменная TreeNode. Просто сделайте что-то вроде pathOf(new TreeNode<Integer>(arg1, arg2, ...)) // Replace arg# with suitable arguments

Другими словами, не звоните pathOf(66), звоните pathOf(someTreeNodeVariable)

Примечание: если вы хотите напечатать пользовательские объекты, Как сделатьЯ печатаю свой объект Java, не получая «SomeType @ 2f92e0f4»? будет для вас очень полезным.

...