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))