美文网首页
树的子结构

树的子结构

作者: GoDeep | 来源:发表于2018-03-30 21:54 被阅读0次

    题目描述
    输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

    # -*- coding:utf-8 -*-
    class TreeNode:
        def __init__(self, x):
            self.val = x
            self.left = None
            self.right = None
            
    class Solution:
        def HasSubtree(self, r1, r2):
            # write code here
            def same(r1, r2):
                if not r2: return True
                if not r1: return False
                return r1.val==r2.val and same(r1.left,r2.left) and same(r1.right,r2.right)
                
            def dfs(root):
                if not root: return False
                if same(root, r2): return True
                if dfs(root.left) or dfs(root.right):
                    return True
                return False
            
            if not r2: return False
            return dfs(r1)
    
    

    相关文章

      网友评论

          本文标题:树的子结构

          本文链接:https://www.haomeiwen.com/subject/krrwcftx.html