我正在为二叉树编写镜像方法。我的类的工作方式是我有一个抽象类 BinaryTree,它有子类 EmptyTree 和 ConsTree。我在为 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 对象使用“+”运算符,但是这是我想要完成的基本思想。我只是对如何将树木组合在一起有点困惑。任何帮助表示赞赏。谢谢。