我刚开始使用java和递归方法,我需要一些帮助: 我需要确定两个二元搜索树是否具有完全相同的一组元素,而不管树的结构如何。测试两个二叉搜索树是否具有相同的一组元素?
我写了检查,如果树中包含的元素,其所谓的包含方法()
这是我走到这一步:
public boolean sameContents(Node n2) {
if (contains(n2, n2.key) && n2.left == null && n2.right == null) { return true; }
if (contains(n2, n2.key) && n2.left != null) { sameContents(n2.left); }
if (contains(n2, n2.key) && n2.right != null) { sameContents(n2.right); }
return false;
}
Basicly我的想法是,该方法只要一个节点还有一个孩子,并且树匹配,就会一直运行。我用例如testTree1.sameContents(testTree2)调用方法;但该方法总是返回false ... 有人可以指出这应该怎么做?
也许提供一些提示,说明如何去编写这个迭代器。 – Dukeling 2013-04-24 13:01:20
好主意,我已经添加了一个实现提示 – 2013-04-24 13:10:12
这只有在迭代器以相同顺序返回元素时才有效。如果你的迭代器包含Objects,使用'equals'代替原始比较器可能会更好。 – Eric 2013-04-24 13:12:36