二叉树--数据结构与算法

1.树的子结构

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

function HasSubtree(pRoot1, pRoot2) {
    if(!pRoot1 || !pRoot2) return false
    return isSubtree(pRoot1, pRoot2) ||
        HasSubtree(pRoot1.left, pRoot2) ||
        HasSubtree(pRoot1.right, pRoot2)
}

function isSubtree(root1, root2) {
    if(!root2) return true    // root2 为 null 时,不管 root1 为何值,都是 true
    if(!root1) return false
    return root1.val === root2.val &&
        isSubtree(root1.left, root2.left) &&
        isSubtree(root1.right, root2.right)
}

你可能感兴趣的:(数据结构与算法)