时间限制:1秒 空间限制:32768K 热度指数:363778
算法知识视频讲解
题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
短路结构判断
public boolean HasSubtree(TreeNode root1,TreeNode root2) {
if(root2==null || root1==null) return false;
return HasSubtreeCore(root1, root2)
|| HasSubtree(root1.left, root2)
|| HasSubtree(root1.right, root2);
}
public boolean HasSubtreeCore(TreeNode root1, TreeNode root2){
if(root2==null) return true;
if(root1==null) return false;
if(root1.val== root2.val){
return HasSubtreeCore(root1.left, root2.left)
&& HasSubtreeCore(root1.right, root2.right);
}
return false;
}