剑指offer——树的子结构

Posted hit-joseph

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了剑指offer——树的子结构相关的知识,希望对你有一定的参考价值。

题目描述

输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
 
# -*- coding:utf-8 -*-
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
def IsSubtree(root1,root2):
    if root2==None:
        return True
    elif root1==None:
        return False
    elif root1.val==root2.val:
        return IsSubtree(root1.left,root2.left)and IsSubtree(root1.right,root2.right)
    else:
        return False
        
class Solution:
    def HasSubtree(self, pRoot1, pRoot2):
        # write code here
        if pRoot2 == None or pRoot1==None:
            return False
        return IsSubtree(pRoot1,pRoot2) or self.HasSubtree(pRoot1.left,pRoot2) or self.HasSubtree(pRoot1.right,pRoot2)
        

 

以上是关于剑指offer——树的子结构的主要内容,如果未能解决你的问题,请参考以下文章

剑指OFFER 树的子结构

剑指offer树的子结构python

剑指Offer对答如流系列 - 树的子结构

剑指offer——树的子结构

剑指offer:树的子结构

剑指offer 树的子结构