题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
解题思路:
- 什么是二叉树的先序、中序、后序遍历
请参考:二叉树(前序,中序,后序,层序)遍历 python实现(递归)
先把两个树转化成先序遍历的字符串,然后判断第二个字符串是不是第一个的子字符串
Python 代码:
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def HasSubtree(self, pRoot1, pRoot2):
# write code here
def tt(root):
if not root:
return ""
return str(root.val) + tt(root.left) + tt(root.right)
if pRoot2:
root1 = tt(pRoot1)
root2 = tt(pRoot2)
return root2 in root1
else:
return False
s = Solution()
res = s.HasSubtree(pRoot1,pRoot2)
print('.....',res)