您的位置:首页 > 理论基础 > 数据结构算法

树的子结构

2016-03-16 23:57 381 查看


题目描述

输入两颗二叉树A,B,判断B是不是A的子结构。

/**

public class TreeNode {

    int val = 0;

    TreeNode left = null;

    TreeNode right = null;

    public TreeNode(int val) {

        this.val = val;

    }

}

*/

public class Solution {

    public boolean HasSubtree(TreeNode root1,TreeNode root2) {

         if(root2==null){

            return false;

        }

         if(root1==null ) {

            return false;

        }

        boolean flag = false;

        flag = IsSubtree(root1,root2);

     

        if(!flag){

            flag = HasSubtree(root1.left, root2);

            if(!flag){

                flag = HasSubtree(root1.right, root2);

            }

        }

        return flag;

    }

    private boolean IsSubtree(TreeNode root1,TreeNode root2){

        if(root2==null){

            return true;

        }

        if(root1==null ) {

            return false;

        }

        if(root1.val==root2.val){

            return IsSubtree(root1.left, root2.left)&&

                IsSubtree(root1.right, root2.right);

        }

        return false;

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构与算法