Я работаю над рекурсивным методом ...
public BinaryTree<T> TreeMirror ( BinaryTree<T> tree ) {
BinaryTree mirror = new BinaryTree();
mirror = clone(tree);
...
TreeMirror(...)
...
}
Я не хочу, чтобы метод mirror
ссылался на отдельный объект BinaryTree
на каждом рекурсивном шаге, и не повторял оператор mirror = clone(tree)
после первой итерации. Мне интересно, можно ли поставить проверку if-оператора, чтобы увидеть, был ли уже инициализирован экземпляр mirror
- в этом случае операторы mirror = new BinaryTree()
и mirror = clone(tree)
будут пропущены.
Я не думаю, что это возможно без передачи mirror
в качестве аргумента в метод или определения его в определении класса ... но я хочу убедиться.
Любой совет очень ценится.
--------- EDIT -----------
Мне не разрешено изменять сигнатуру метода, поэтому я не могу передать объект в моей реализации. Я могу создать зеркальное дерево, но только изменив исходное дерево в зеркало, чего я хочу избежать. Я пытался создать новый BinaryTree
объект, который является зеркалом исходного дерева, которое передается, но на самом деле не может понять, как сделать это рекурсивно.