<剑指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
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务