1
另一个容易,但我似乎无法得到它。我需要编写一种方法来比较两棵二叉树的结构,并返回它们相同或不相同的天气。数据和数据类型只对结构不重要。下面是一些例子:比较两个二叉树,看他们是否有相同的结构
这里是我到目前为止的代码。我认为它非常接近。
public boolean sameStructure(OrderedSet<E> other) {
if (other.size() != size)
return false;
return sameStructureHelp(other, root, other.root);
}
private boolean sameStructureHelp(OrderedSet<E> other, TreeNode ref,
TreeNode otherRef) {
if (otherRef == null && ref != null)
return false;
if (otherRef != null && ref == null)
return false;
sameStructureHelp(other, ref.left, otherRef.left);
sameStructureHelp(other, ref.right, otherRef.right);
return true;
}
你是什么说法?仔细一看,看起来如果两个节点同时为空,你的代码会抛出一个NullPointerException,不是吗? –