zoukankan      html  css  js  c++  java
  • 算法题---是否是另外一颗树的子树

    给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。

    示例 1:
    给定的树 s:

    3
    /
    4 5
    /
    1 2
    给定的树 t:

    4
    /
    1 2
    返回 true,因为 t 与 s 的一个子树拥有相同的结构和节点值。

    示例 2:
    给定的树 s:

    3
    /
    4 5
    /
    1 2
    /
    0
    给定的树 t:

    4
    /
    1 2
    返回 false。

    // 两棵树,求t树是不是s树的子树
    bool isSame(TreeNode *s, TreeNode *t){
        if(s==NULL && t==NULL){
            return true;
        }
        if(s==NULL || t==NULL){
            return false;
        }
        if(s->val != t->val){
            return false;
        }
        return (isSame(s->left, t->left) && isSame(s->right, t->right));
    }
    
    bool isSub(TreeNode *s, TreeNode *t){
        if(s==NULL && t==NULL){
            return true;
        }
        if(s==NULL && t!=NULL){
            return false;
        }
        if(s!=NULL && t==NULL){
            return true;
        }
        bool result = false;
        if(s->val == t->val){
            result = isSame(s, t);
        }
        if(result == false){
            result = isSub(s->left, t);
        }
        if(result == false){
            result = isSub(s->right, t);
        }
        return result;
    }
  • 相关阅读:
    php aes128加密
    redis应用场景
    Yii2开发小技巧
    yii2开启事务
    yii2验证密码->手机号码短信发送>手机短信发送频繁问题
    yii2 rules验证规则,ajax验证手机号码是否唯一
    随笔20170415
    v1版本
    数的划分
    单词接龙
  • 原文地址:https://www.cnblogs.com/syw-home/p/13881741.html
Copyright © 2011-2022 走看看