Java教程

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

本文主要是介绍剑指 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))

这篇关于剑指 Offer 26. 树的子结构(java & python)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!