树的子结构

转载 2016年08月29日 20:09:22

面试题目:输入两颗二叉树A,B,判断B是不是A的子结构;

先找到B根节点对应的A的节点,在判断是否相同。

主要部分代码:

bool ifTheSameTree(BiTree &t1,BiTree &t2)
{
    if (t2 == NULL)return true;//B树为空,肯定是相同的树
    if(t1 == NULL)return false;
    if (t1->value!=t2->value)return false;//节点不同,不是
    else
    {
        return ifTheSameTree(t1->lchild,t2->lchild) & ifTheSameTree(t1->rchild,t2->rchild);//左右均为true返回true
    }
}
bool isSubBinTree(BiTree &t1,BiTree &t2)
{
    bool result = false;
    if(t1 != NULL && t2 != NULL)
    {
        if (t1->value == t2->value)//根节点相同,就判断A,B树是否一样
        {
            result = ifTheSameTree(t1,t2);
        }
        if(!result)result = isSubBinTree(t1->lchild,t2);//判断左子树
        if (!result) result = isSubBinTree(t1->rchild,t2);//判断右子树
    }
    return result;
}


相关文章推荐

剑指offer 树的子结构

树的子结构题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 我的解答题意这道题目我是在牛客网上做的,题目叙述过于简答,坑了我半天,我的理解是一棵...

剑指offer-面试题18.树的子结构

题目:输入两棵二叉树A和B,判断B是不是A的子结构。 二叉树节点定义如下: 1 struct BinaryTreeNode 2 { 3 int m_nValu...

剑指offer 18. 树的子结构

// 题目:给出两个树,判断B是否是A的子结构 // 解法:递归的进行,转换每一个节点 public class Main { public static void main(String[] ...

剑指offer:树的子结构

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

笔试面试算法经典--二叉树的子结构(Java)

题目描述 输入两棵二叉树A,B,判断B是不是A的子结构(空树不是任意一个树的子结构)。下图中:右边的二叉树是左边二叉树的子结构解法: 先序遍历 A树,如果当前节点与 B树的根节点相同,则判断 B ...

剑指offer面试题18:树的子结构

题目:输入两棵二叉树A和B,判断B是不是A的子结构。 算法分析:         要查找树A中是否存在和树B结构一样的子树,我们可以分为两步,第一步:在树A中找到和...

剑指offer(19):树的子结构

题目描述输入两颗二叉树A,B,判断B是不是A的子结构。分析 有关树的操作一般是通过递归遍历来实现的。

求树的子结构

好长时间不更新博客了,今天看到一道以前做过的题(题目来自《剑指offer》),再练一下: 我的思路如下: 判断B是不是A的子结构,就是要判断B是不是和A中的一部分结构是不是完全相同...

码农小汪-剑指Offer之15-树的子结构

题目描述输入两颗二叉树A,B,判断B是不是A的子结构。题解:我们这个主要的问题就是,如何去判断一个是不是另一个的子树,首先一点。我们肯定涉及到对于树的值得比较,肯定会和遍历有关系啦。遍历最简单的递归去...

树的子结构

树的子结构 1. 题目 输入两棵二叉树A和B,判断B是不是A的子结构。二叉树定义结构如下: struct BinaryTreeNode {       int m_nValue;       ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)