剑指offer--树的子结构

原创 2017年04月25日 14:51:04

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


AC代码:

/**
public class TreeNode {
    int val = 0;
    TreeNode left = null;
    TreeNode right = null;

    public TreeNode(int val) {
        this.val = val;

    }

}
*/

/*
 * 解题思路:俩颗树都不为空时,如果根节点相同
 * ,那么判断root2是不是root1的子树
 * 如果不是,那么判断root2是不是root1左子树的子树
 * 如果还不是,那么判断root2是不是root1右子树的子树
 * 如果还不是,返回root2不是root1的子树
 */

public class Solution {

    public boolean IsSubTree(TreeNode root1,TreeNode root2){
        /*
         * 判断root2是否为root1的子树
         */
        if ( root2 == null){
            return true;
        }else if ( root1 == null){
            return false;
        }

        if ( root1.val != root2.val){
            return false;
        }
        return IsSubTree(root1.left, root2.left)&&IsSubTree(root1.right, root2.right);
    }

    public boolean HasSubtree(TreeNode root1,TreeNode root2) {
        boolean result = false;
        if ( root1 != null && root2 != null){
            if ( root1.val == root2.val){
                result = IsSubTree(root1, root2);
            }
            if(!result){
                result = IsSubTree(root1.left, root2);
            }
            if (!result){
                result = IsSubTree(root1.right, root2);
            }
        }
        return result;
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。若需转载,请注明http://blog.csdn.net/qq_30091945 举报

相关文章推荐

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

题目描述输入两颗二叉树A,B,判断B是不是A的子结构。分析 有关树的操作一般是通过递归遍历来实现的。

剑指Offer:树的子结构

树的子结构输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)1、排除B为空树情况。 2、进入子结构判断函数,发现父节点相同,则判断后者是否为前者的开始结构。是...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

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

题目:输入两棵二叉树A和B,判断B是不是A的子结构。 例如图中所示的两棵二叉树,由于A中有一部分子树的结构和B 是一样的,因此B是A的子结构。 要查找树A中是否存在和树B结构一样的子树,思路...

【剑指offer】树的子结构

题目描述: 输入两颗二叉树A,B,判断B是不是A的子结构。 输入: 输入可能包含多个测试样例,输入以EOF结束。 对于每个测试案例,输入的第一行一个整数n,m(1<=n<=1000,1<=m<=100...

剑指offer:树的子结构

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

剑指Offer——树的子结构

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

《剑指offer》树的子结构

一、题目描述输入两颗二叉树A,B,判断B是不是A的子结构。二、输入描述输入两棵树A,B。三、输出描述判断B是不是A的子结构,是返回true,否则返回false。四、牛客网提供的框架/* struct ...

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

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

【剑指offer】树的子结构

题目:输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 分析:要做题,先要理解题目的意思。首先我们先理解什么是子结构,这里的子结构不是说B只有根节点和A的某一...

剑指offer 树的子结构

树的子结构题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 我的解答题意这道题目我是在牛客网上做的,题目叙述过于简答,坑了我半天,我的理解是一棵...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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