树的子结构

转载 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面试编程题】题目1520:树的子结构--九度OJ

一看到树,第一想法就是递归,虽然递归的效率确实不高,但在OJ上讲究时间效率,有时候配合适当的剪枝能快速AC。本题需要两层递归,首先我们要确定A树的哪个子树与B树进行比照,也就是确定A树的子节点,这是第...

剑指offer 18. 树的子结构

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

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

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

面试题 18: 树的子结构

一. 题目 输入两棵二叉树A和B,判断B是不是A的子结构.代码请到我的代码库中下载 Point2Offer二. 代码package week_4;/**难度系数:*** * 剑指offer: 树的...

树的子结构(剑指offer18)

题目:输入两棵二叉树A和B,判断B是不是A的子结构。二叉树的结点定义如下:...

输入两颗二叉树A,B,判断B是不是A的子结构

方法一:最简单就是首先判断两棵树的根节点是否相同,如果相同则判断两颗树的左节点是否对应,右结点是否对应, 如果两个根节点值不同,主树左节点与子树根节点判断,主树右结点与子树根节点判断,然后再判断对应...

《剑指Offer》学习笔记--面试题18:树的子结构

题目:输入两颗二叉树A和B,判断B是不是A的子结构。 二叉树节点定义如下: struct BinaryTreeNode { int m_nValue; BinaryTreeNode*...

《剑指offer》树的子结构

一、题目描述输入两颗二叉树A,B,判断B是不是A的子结构。二、输入描述输入两棵树A,B。三、输出描述判断B是不是A的子结构,是返回true,否则返回false。四、牛客网提供的框架/* struct ...

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

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

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

题目描述输入两颗二叉树A,B,判断B是不是A的子结构。题解:我们这个主要的问题就是,如何去判断一个是不是另一个的子树,首先一点。我们肯定涉及到对于树的值得比较,肯定会和遍历有关系啦。遍历最简单的递归去...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:树的子结构
举报原因:
原因补充:

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