JZ17 树的子结构
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Solution:
def dfs(self, r1, r2):
if r2 is None:
return True
if r1 is None:
return False
if r1.val == r2.val:
return self.dfs(r1.left, r2.left) and self.dfs(r1.right, r2.right)
return False
def HasSubtree(self, pRoot1, pRoot2):
if not pRoot2 or not pRoot1:
return False
if pRoot1.val == pRoot2.val:
if self.dfs(pRoot1, pRoot2):
return True
return self.HasSubtree(pRoot1.left, pRoot2) or self.HasSubtree(pRoot1.right, pRoot2)