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