竹径风声

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

题目描述

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
 
解答:
class Solution:
    def HasSubtree(self, pRoot1, pRoot2):
        # write code here
        if pRoot1 is None or pRoot2 is None:
            return False
        flag=False
        if pRoot1.val==pRoot2.val:
            flag=self.SubTree(pRoot1,pRoot2)
        if flag==False:
            flag=self.HasSubtree(pRoot1.left,pRoot2) or self.HasSubtree(pRoot1.right,pRoot2)
        return flag
    def SubTree(self,root1,root2):
        if root2 is None:
            return True
        if root1 is None :
            return False
        if root1.val==root2.val:
            return self.SubTree(root1.left,root2.left) and self.SubTree(root1.right,root2.right)
        return False
posted on 2019-03-01 16:38  竹径风声  阅读(337)  评论(0编辑  收藏  举报