二分木の鏡像法を書いています。私のクラスが機能する方法は、サブクラスEmptyTreeとConsTreeを持つ抽象クラスBinaryTreeを持っていることです。ConsTreeのメソッドを作成するのに問題があります。クラスは次のようになります。
public class ConsTree<T> extends BinaryTree<T>
{
BinaryTree<T> left;
BinaryTree<T> right;
T data;
public BinaryTree<T> mirrorImage()
{
ConsTree<T> tree = new ConsTree<T>(this.data, this.right, this.left); //In the constructor, the second parameter sets the left tree, so creates a new tree with the left and right trees swapped
if(this.left == null && this.right == null)
return tree;
if(this.left == null)
return tree + this.right.mirrorImage();
else if(right == null)
return tree + this.left.mirrorImage();
return tree + this.left.mirrorImage() + this.right.mirrorImage();
}
BinaryTreeオブジェクトで「+」演算子を使用できないため、これは明らかに機能しませんが、これは私が達成したいことの基本的な考え方です。木を組み合わせる方法に少し混乱しています。どんな助けでも大歓迎です。ありがとう。