美文网首页剑指offer
17-树的子结构-递归(有需要注意的地方)

17-树的子结构-递归(有需要注意的地方)

作者: 马甲要掉了 | 来源:发表于2020-05-07 22:29 被阅读0次

题目描述:

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

代码:

/* function TreeNode(x) {
    this.val = x;
    this.left = null;
    this.right = null;
} */
function HasSubtree(pRoot1, pRoot2)
{
    // write code here
    var res = false;
    if(pRoot2==null || pRoot1 == null) return false;
    if(pRoot1.val == pRoot2.val){
       res = isSubtree(pRoot1,pRoot2);
    }
    if (!res) res = HasSubtree(pRoot1.left, pRoot2);
    if (!res) res = HasSubtree(pRoot1.right, pRoot2);
    return res;
}
function isSubtree(p1,p2){
    if(p2==null) return true;  //必须先判断p2有没有走完,不然会出错(可能p1也走完了,p2也走完了)
    if(p1==null) return false;
    
    if(p1.val!=p2.val) return false;
    return isSubtree(p1.left,p2.left) && isSubtree(p1.right,p2.right);
}

相关文章

  • 17-树的子结构-递归(有需要注意的地方)

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

  • 面试18:树的子结构

    【题目描述】输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)【思路】递归...

  • 树的子结构

    这道题之前做过,只是自己又想不起来了。方法就是两次递归+dfs 首先:需要一个函数来判断树B 是不是 树A的子结构...

  • 郝斌C

    注意: 课程注意的地方:59、74、递归在数据结构 笔记: 公式:被除数/除数=商取余%的运算对象必须是整数,结果...

  • 面试题26:树的子结构

    该题的思路应该使用递归来判断,通过判断左子树和右子树来判断树是否是子结构,当子结构为空时,则判断成功

  • 递归

    递归即自己调用自己注意在使用递归时需要定义递归头和递归体 需要注意的是,虽然递归简单,但是会占用大量的系统堆栈,内...

  • 二叉树

    非线性结构:树和图树:是一种递归定义的递归结构,重要的非线性结构。深度:树中结点最大层次的值。(结点最多的那一层层...

  • 剑指offer 面试题18:树的子结构

    题目:输入两棵二叉树A和B,判断B是不是A的子结构。 解法:二叉树问题,递归思路

  • 求解递归式--时间复杂度分析方法

    递归树 递归树中,每个节点表示一个单一子问题的代价,子问题对应某次递归函数调用。将树中没层中的代价求和,得到每层代...

  • 树的定义与性质

    1 定义 1.1 树型结构 (1)结点之间有分支(2)具有层次关系 1.2 树的递归嵌套定义 树(tree)是n(...

网友评论

    本文标题:17-树的子结构-递归(有需要注意的地方)

    本文链接:https://www.haomeiwen.com/subject/aohtnhtx.html