美文网首页
树的子结构

树的子结构

作者: 棉花糖7 | 来源:发表于2020-08-18 14:22 被阅读0次

    这道题之前做过,只是自己又想不起来了。方法就是两次递归+dfs

    首先:需要一个函数来判断树B 是不是 树A的子结构。

    1.递归函数功能:判断2个树是否具有相同的功能,有就返回true,否则返回false。

    2.递归终止条件:如果树B为空,则表示已经递归到最后了,2棵树都是相等的,所以直接返回true。

                                如果树A为空,则树B不为空,直接返回false。

    3.下一步递归参数:如果A的根节点和B的根节点不相等,则直接返回false

                             如果相等,则继续判断树A的左子树和树B的左子树 以及树A的右子树和树B的右子树是否相等。只有都相等,才能说明树A和树B结构相同。

    其次:接下来我们应该以树A的每个节点作为跟节点,分别与树B进行比较,来确定 树B 是否是 树A 的子树。。

    这里要注意的一点是, 如果树A为不管树B是否为空,都是false。另外一个题目已经说明 空树不是任意一个树的子结构。因此如果树B为空树,返回false。

    在遍历树A的每个节点时,可以选择先序遍历。

    题目 题解 代码

    相关文章

      网友评论

          本文标题:树的子结构

          本文链接:https://www.haomeiwen.com/subject/jwzhjktx.html