(50)~剑指 Offer 26. 树的子结构

86 阅读1分钟

这个题,主要就是判断,recur,a中有没有b的跟节点,有的就就继续,没有直接返回false;recur中没有写return 找死我了,一直不对

var isSubStructure = function(A, B) {
    // 盘空
    if(!A || !B) return false;
    // 在ab都有值得枪框下 a节点有b 或者a的左右字节点中用b
    return  recur(A,B) || isSubStructure(A.left, B) || isSubStructure(A.right, B)
};

// 先判断 a的字节点中 有没有b
const recur = function (a, b) {
    // b是空节点 肯定在a中
    if(!b) return true;
    // 没有a 或者ab的值不想等 说明没有b
    if(!a || a.val !== b.val) return false;

    // 下一步循环各自的左右节点
    return recur(a.left, b.left) && recur(a.right, b.right)
}

力扣本题传送门