本文主要是介绍算法题/数的子结构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
这里要注意的是,题目是判断子结构,而不是判断子树(当然子树也是子结构,但不是所有的子结构都是子树),因此,首先要做的判断应该是从A,B两棵树的根节点开始,这里利用递归的思想(若一对节点相等,则递归的判断这对节点的左右子树是不是分别相等,若一直相等,则总会先遍历完一棵树,若这棵树为B,则B为A的子结构成立,若为A,则A为B的子结构,故不成立),而后再递归的判断B是不是A得左子树或右子树的子结构
#coding:utf-8
class TreeNode:def __init__(self,x):self.val = xself.left = Noneself.right = None
这篇关于算法题/数的子结构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!