剑指offer--树的子结构--再做

来源:互联网 发布:每日流量控制软件 编辑:程序博客网 时间:2024/06/03 16:00
题目描述

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


注意是子结构不是子数:


public class 树的子结构 {public class TreeNode {    int val = 0;    TreeNode left = null;    TreeNode right = null;    public TreeNode(int val) {        this.val = val;    }}public static void main(String[] args) {// TODO Auto-generated method stub}    public boolean HasSubtree(TreeNode root1,TreeNode root2) {    if (root2==null||root1==null) {return false;}        boolean result = false;    if (root1.val == root2.val) {result = BisAson(root1,root2);}    if (!result) {result = HasSubtree(root1.left, root2);}    if (!result) {result = HasSubtree(root1.right, root2);}return result;    }public boolean BisAson(TreeNode root1, TreeNode root2) {// TODO Auto-generated method stubif (root1==null&&root2!=null) {return false;}if (root2==null) {return true;}if (root1.val != root2.val) {return false;}return BisAson(root1.left, root2.left)&&BisAson(root1.right, root2.right);}        }


原创粉丝点击