<剑指offer> 树的子结构.Python
树的子结构
http://www.nowcoder.com/questionTerminal/6e196c44c7004d15b1610b9afca8bd88
class Solution:
def HasSubtree(self, pRoot1, pRoot2): # write code here # <剑指offer> result = False if ( pRoot1!=None and pRoot2!=None ): if ( self.Equal( pRoot1.val, pRoot2.val ) ): result = self.DoesTree1HasTree2( pRoot1, pRoot2 ) if not result: result = self.HasSubtree( pRoot1.left, pRoot2 ) or self.HasSubtree( pRoot1.right, pRoot2 ) return result def DoesTree1HasTree2(self, pRoot1, pRoot2): if not pRoot2: return True if not pRoot1: return False if not self.Equal( pRoot1.val, pRoot2.val ): return False return self.DoesTree1HasTree2( pRoot1.left, pRoot2.left ) and self.DoesTree1HasTree2( pRoot1.right, pRoot2.right ) def Equal(self, value1, value2): if ( value1-value2 )>-0.0000001 and ( value1-value2 )<0.0000001: return True else: return False