剑指 Offer 26. 树的子结构(java & python)

java:

没有感情的递归 

class Solution {
    public boolean isSubStructure(TreeNode A, TreeNode B) {
        return ( A != null && B != null ) && (judge( A, B ) || isSubStructure( A.left, B) ||isSubStructure(A.right, B));
    }
    public boolean judge(TreeNode A, TreeNode B){
        if( B == null ){
            return true;
        }
        if( A == null || A.val != B.val ){
            return false;
        }
        return judge( A.left, B.left ) && judge( A.right, B.right );
    }
}

python3:

class Solution:
    def isSubStructure(self, A: TreeNode, B: TreeNode) -> bool:
        def judge(A, B):
            if B == None:
                return True
            if A == None or A.val != B.val:
                return False
            return judge(A.left,B.left) and judge(A.right,B.right)
        
        return (A != None and B !=None) and (judge(A, B) or self.isSubStructure(A.left, B) or self.isSubStructure(A.right, B))

上一篇:CF1354A Alarm Clock 题解


下一篇:489 Hangman Judge (UVA)