本文主要是介绍剑指offer:树的子结构(Python),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述
输入两棵二叉树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, pRoot1, pRoot2):# write code hereif not pRoot1 or not pRoot2:return Falsereturn self.is_subtree(pRoot1, pRoot2) or self.HasSubtree(pRoot1.left, pRoot2) or self.HasSubtree(pRoot1.right, pRoot2)def is_subtree(self, A, B):if not B:return Trueif not A or A.val != B.val:return Falsereturn self.is_subtree(A.left,B.left) and self.is_subtree(A.right, B.right)
这篇关于剑指offer:树的子结构(Python)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!