【发布时间】:2014-05-09 10:52:47
【问题描述】:
我应该使用递归检查二叉树是否与另一棵树具有相同的结构。 我遇到麻烦的部分是弄清楚如何在每个级别检查是否有左侧或右侧并将其与另一棵树进行比较。任何形式的帮助将不胜感激。
public boolean hasSameStructureAs(BinaryTree tree){
//If left and right are null they are still similar
if(leftChild == null && rightChild == null);
return true;
if (leftChild == null && rightChild != null)
return false;
if (leftChild != null && rightChild == null){
return false;
//我在下面代码的递归部分遇到问题,我认为我部分正确
if (!tree.equals(rightChild.left,leftChild.left )) return false;
if (!tree.equals(rightChild.right, leftChild.right)) return false;
return true;
这里是一些构造函数和get/set方法。
public class BinaryTree {
private String data;
private BinaryTree leftChild;
private BinaryTree rightChild;
public BinaryTree(String d) {
data = d;
leftChild = null;
rightChild = null;
}
public BinaryTree(String d, BinaryTree left, BinaryTree right) {
data = d;
leftChild = left;
rightChild = right;
}
public String getData() {
return data;
}
public BinaryTree getLeftChild() {
return leftChild;
}
public BinaryTree getRightChild() {
return rightChild;}
【问题讨论】:
标签: java recursion data-structures