剑指offer——17.树的子结构

原创 2017年08月12日 19:39:32

题目描述

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

代码

思路:比较B是不是A的子树,B是不是A的右子树的子树,B是不是A的左子树的子树。如果根元素相同,则开始判断左子树和右子树

function isSubtree(pRoot1,pRoot2){
    if (pRoot2 == null) return true;//pRoot2为null,表示子树已经遍历完
    if (pRoot1 == null) return false;
    if(pRoot1.val==pRoot2.val){
        return isSubtree(pRoot1.left,pRoot2.left) && isSubtree(pRoot1.right,pRoot2.right);
    }else{
        return false;
    }
}

function HasSubtree(pRoot1, pRoot2)
{
    // write code here
    if(pRoot1==null||pRoot2==null) return false;   
    return isSubtree(pRoot1,pRoot2)||HasSubtree(pRoot1.left,pRoot2)||HasSubtree(pRoot1.right,pRoot2);
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

剑指Offer——(17)树的子结构

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

《剑指offer》——树的子结构

T: 题目描述 输入两颗二叉树A,B,判断B是不是A的子结构。 这地方需要注意的有两点: 判断的是“子结构”,而非“子树”,我第一次提交,就当成子树去做的,结果error; 如果两个子树中...

剑指Offer——树的子结构

题目描述输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 树节点定义如下:public class TreeNode { int val = 0; ...

剑指offer——普通二叉树的子结构

1.题目描述  输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)2.解题思路  首先要进行程序的鲁棒性分析: 1. 如果B为空树,那么判断结果为false,...

剑指offer 树的子结构

树的子结构题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 我的解答题意这道题目我是在牛客网上做的,题目叙述过于简答,坑了我半天,我的理解是一棵...

剑指offer-面试题18.树的子结构

题目:输入两棵二叉树A和B,判断B是不是A的子结构。 二叉树节点定义如下: 1 struct BinaryTreeNode 2 { 3 int m_nValu...

剑指offer 18. 树的子结构

// 题目:给出两个树,判断B是否是A的子结构 // 解法:递归的进行,转换每一个节点 public class Main { public static void main(String[] ...

剑指offer:树的子结构

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

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

题目:输入两棵二叉树A和B,判断B是不是A的子结构。 算法分析:         要查找树A中是否存在和树B结构一样的子树,我们可以分为两步,第一步:在树A中找到和...

剑指offer(19):树的子结构

题目描述输入两颗二叉树A,B,判断B是不是A的子结构。分析 有关树的操作一般是通过递归遍历来实现的。...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:剑指offer——17.树的子结构
举报原因:
原因补充:

(最多只允许输入30个字)