题解 | #树的子结构#

树的子结构

http://www.nowcoder.com/practice/6e196c44c7004d15b1610b9afca8bd88

用递归来做:

# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
class Solution:
    def isSame(self,root1,root2):
        if root2==None:
            return True
        if root1==None:
            return False
        
        if root1.val!=root2.val:
            return False
#         left,right=True,True
#         if(root1.left):
#             left=self.isSame(root1.left, root2.left)
        
#         if root1.right:
#             right=self.isSame(root1.right, root2.right)
#         flag=left and right
        flag=(self.isSame(root1.left, root2.left)) and (self.isSame(root1.right, root2.right))
        return flag
        
    def HasSubtree(self, pRoot1, pRoot2):
        # write code here
        if pRoot1==None&nbs***bsp;pRoot2==None:
            return False
        
        if self.isSame(pRoot1,pRoot2):
            return True
        if self.HasSubtree(pRoot1.left, pRoot2)&nbs***bsp;self.HasSubtree(pRoot1.right, pRoot2):
            return True
#         return False


全部评论

相关推荐

11-26 22:34
已编辑
重庆邮电大学 Java
快手 客户端开发 (n+5)k*16 公积金12
牛客895077908号:佬 什么双非硕啊
点赞 评论 收藏
分享
10-15 03:05
门头沟学院 Java
CADILLAC_:凯文:我的邮箱是死了吗?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务