树的子结构(important!)

Posted bernieloveslife

tags:

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

题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)

python solution:

# -*- 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):
        if pRoot1 is None or pRoot2 is None:
            return False
        res = False
        if pRoot1.val==pRoot2.val:
            res = self.doeshtree1havetree2(pRoot1,pRoot2)
        if res is False:
            res = self.HasSubtree(pRoot1.left,pRoot2)
        if res is False:
            res = self.HasSubtree(pRoot1.right,pRoot2)
        return res

    def doeshtree1havetree2(self,proot1,proot2): #判断以proot1和proot2为根节点的两个树是否相同
        if proot2 is None:
            return True
        if proot1 is None:
            return False
        if proot1.val!=proot2.val:
            return False
        return self.doeshtree1havetree2(proot1.left,proot2.left) and self.doeshtree1havetree2(proot1.right,proot2.right)

以上是关于树的子结构(important!)的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段5——HTML元素结构

VSCode自定义代码片段5——HTML元素结构

VSCode自定义代码片段5——HTML元素结构

JAVA文件目录遍历缩进算法

《剑指Offer——树的子结构》代码

LeetCode810. 黑板异或游戏/455. 分发饼干/剑指Offer 53 - I. 在排序数组中查找数字 I/53 - II. 0~n-1中缺失的数字/54. 二叉搜索树的第k大节点(代码片段