树的子结构
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)