树的子结构

2018-03-30  本文已影响0人  GoDeep

题目描述
输入两棵二叉树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)

上一篇下一篇

猜你喜欢

热点阅读