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

Posted littleswan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)相关的知识,希望对你有一定的参考价值。

public class Solution 
    public boolean HasSubtree(TreeNode root1,TreeNode root2) 
        if(root2==null)
            return false;
        
        if(root1==null)
            return false;
        
        return isSubtree(root1,root2)||isSubtree(root1.left,root2)||isSubtree(root1.right,root2);
    
    public static 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;
    

 

以上是关于输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)的主要内容,如果未能解决你的问题,请参考以下文章

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

Offer[26] 树的子结构

java基础编程——树的子结构

判断二叉树A是否包含二叉树B

剑指 Offer 26. 树的子结构(递归,二叉树)

树的子结构——18