树的子结构

来源:互联网 发布:sem seo谷歌 编辑:程序博客网 时间:2024/05/18 17:42

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

/**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(root1==null || root2==null){            return false;         }        boolean result=false;        if(root1.val==root2.val){            result = helper(root1,root2);        }        if(!result){             result= HasSubtree(root1.left,root2) || HasSubtree(root1.right,root2);        }        return result;    }    public boolean helper(TreeNode root1,TreeNode root2){                if(root2==null){            return true;        }        if(root1==null){            return false;        }        if(root1.val!=root2.val){            return false;        }        return helper(root1.left,root2.left) && helper(root1.right,root2.right);           }}

原创粉丝点击