另一棵树的子树:root 是否包含 subRoot

572. 另一棵树的子树

图片&文件

思路:

var isSubtree = function (root, subRoot) {
    if (root === null) return subRoot === null;
    if (isSameTree(root, subRoot)) return true;
    let left = isSubtree(root.left, subRoot);
    let right = isSubtree(root.right, subRoot);
    return left || right;
};

var isSameTree = function (p, q) {
    // 判断一对节点是否相同
    if (p == null && q == null) {
        return true;
    }
    if (p == null || q == null) {
        return false;
    }
    if (p.val != q.val) {
        return false;
    }
    // 判断其他节点是否相同
    return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
};