Likou 572: Un subárbol de otro árbol

inserte la descripción de la imagen aquí
Al hacer esta pregunta, pensamos que el subárbol de otro árbol es el subárbol del árbol padre que es el mismo que ese árbol,
que es el juicio del mismo árbol.Luego
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
, escribimos código de acuerdo con el juicio.

class Solution {
    
    

 private boolean isSameTree(TreeNode p, TreeNode q) {
    
      //判断两颗树是不是相同
        if(p == null && q == null){
    
    
            return true;
        }
if(p == null && q != null || p != null && q == null){
    
    
    return false;
}
if(p.val != q.val){
    
    
    return false;
}
return isSameTree(p.left,q.left) && isSameTree(p.right,q.right);  //这边是返回true or false
    }

    public boolean isSubtree(TreeNode root, TreeNode subRoot) {
    
    
if(root == null || subRoot == null){
    
      //父树为空 或 子树为空 单项条件都不行
    return false;
}
if(isSameTree(root,subRoot)){
    
      //两颗树相同,返回true
    return true;
}
if(isSubtree(root.left,subRoot)){
    
      //递归父树的左子树跟subRoot比较
    return true;
}
if(isSubtree(root.right,subRoot)){
    
    
    return true;
}
return false;  //左右都没有,返回false
    }
}

Enlace: ¡Un subárbol de otro árbol!

Supongo que te gusta

Origin blog.csdn.net/chenbaifan/article/details/123601151
Recomendado
Clasificación