题解 | #树的子结构#

树的子结构

http://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88

没写出来照抄的 两个递归属实牛 感觉我的思路没问题啊

// /* function TreeNode(x) {
//     this.val = x;
//     this.left = null;
//     this.right = null;
// } */
// function HasSubtree(pRoot1, pRoot2)
// {
//     // write code here
//     let res
//      if(!pRoot1||!pRoot2) return false;
//      if(pRoot1.val===pRoot2.val){
//         if(!pRoot2.left){
//              res=HasSubtree(pRoot1.right,pRoot2.right)
//          }else if(pRoot2.right===null){
//              res=HasSubtree(pRoot1.left,pRoot2.left)
//              return true
//          }else{
//              res=HasSubtree(pRoot1.left,pRoot2.left)&&HasSubtree(pRoot1.right,pRoot2.right)          
//             return true
//          }
//      }else{
//        res=HasSubtree(pRoot1.left,pRoot2)||HasSubtree(pRoot1.right,pRoot2)
//        return false
//      }
// }
// module.exports = {
//     HasSubtree : HasSubtree
// };

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function HasSubtree(pRoot1, pRoot2)
{
    // 空树做特殊处理
    if(!pRoot1 || !pRoot2){
        return false
    }
    return checkSameTree(pRoot1, pRoot2) // 校验当前节点的左右子树是否相同
    || HasSubtree(pRoot1.left, pRoot2) // 如果不相同,校验pRoot1的左子树
    || HasSubtree(pRoot1.right, pRoot2) // 还不相同校验右子树
}

function checkSameTree(pRoot1, pRoot2){
    // 如果pRoot2不存在,证明pRoot2已经比较完了,且完全相同
    if(!pRoot2){
        return true
    }
    // 如果pRoot2还在,但是pRoot1没了,说明当前子树比pRoot2节点少,所以不相同
    else if(!pRoot1){
        return false
    }
    // 值不相同所以不相同
    else if(pRoot1.val !== pRoot2.val){
        return false
    }
    // 继续校验左右子节点
    return checkSameTree(pRoot1.left, pRoot2.left) && checkSameTree(pRoot1.right, pRoot2.right)
}

module.exports = {
    HasSubtree : HasSubtree
};
全部评论

相关推荐

11-24 00:11
已编辑
广东工业大学 算法工程师
避雷深圳  yidao,试用期 6 个月。好嘛,试用期还没结束,就直接告诉你尽快找下一家吧,我谢谢您嘞
牛客75408465号:笑死,直属领导和 hr 口径都没统一,各自说了一些离谱的被裁理由,你们能不能认真一点呀,哈哈哈哈哈😅😅😅
点赞 评论 收藏
分享
微风不断:兄弟,你把四旋翼都做出来了那个挺难的吧
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务