题目描述
输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构)
解题思路
创建一个新的IsSubtree函数用来递归调用。如果根节点相同,就递归调用该函数,否则判断B是否为A的左子树或右子树的子结构。
需要注意空树的情况:HasSubtree中任一树为空就返回False;IsSubtree中需先判断B是否为空,为空表示已经遍历完了,是子结构,A树为空或当前两个根节点不同则返回False,否则递归到左子树和右子树继续判断,两个子树都返回True则返回True。
代码