测试两个BST在Java中是否相等

Mic*_*ael 4 java equality binary-search-tree

我想测试两个给定的BSTs(二进制搜索树)在Java中是否相等.该BST节点没有指针指向父节点.

最简单的解决方案是遍历两者BSTs,创建两个遍历列表并测试列表是否相等.但是它需要O(N)内存.

我想尝试另一种方式:创建一个Iterator遍历的BSTs,然后......其余的是显而易见的.

是否有意义?有没有"更好"(更简单和有效)的解决方案来测试两个BSTs是否相等?

Tom*_*icz 7

  1. 二叉搜索树是一棵树,对吧?

  2. 如果它们具有相同的根和相同的子,则两棵树是相等的.

  3. 每个孩子也是一棵树.

  4. 见第2点.

提示:.内存消耗是O(logn)(自己证明).