Check if B is Subtree of A
Last updated
Last updated
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)示例1
复制
复制
定义一个对比tree A有没有包含tree B的函数
输入: tree A的某个node, treeB的root node
如果treeA的树搜索完但B的没有搜索完,就是False
如果treeB搜索完,就return True (treeB 是treeA的一部分)
否则对比当前treeA的node 和B的node的value,不一致就return False
在HasSubtree 里面先对比tree A当前的node和tree B的root node,如果一致,就对比以tree A当前的node为root node的subtree和tree B
如果不一致,就对比tree A当前的node的left,right分支有没有包含tree B。
Time: O(m) for matching subtree A and tree B, m= number of node in B, O(n) for iterating every node in A. In total: O(m*n)
Space: O(logn) for recursion