[leetcode] B树是不是A树的子结构

给定两棵二叉树 tree1tree2,判断 tree2 是否以 tree1 的某个节点为根的子树具有 相同的结构和节点值

注意,空树 不会是以 tree1 的某个节点为根的子树具有 相同的结构和节点值

示例 1:

复制代码
输入:tree1 = [1,7,5], tree2 = [6,1]
输出:false
解释:tree2 与 tree1 的一个子树没有相同的结构和节点值。

示例 2:

复制代码
输入:tree1 = [3,6,7,1,8], tree2 = [6,1]
输出:true
解释:tree2 与 tree1 的一个子树拥有相同的结构和节点值。即 6 - > 1。
复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    bool isSubStructure(TreeNode* A, TreeNode* B) {
        return (A != nullptr && B != nullptr) && (recur(A, B) || isSubStructure(A->left, B) || isSubStructure(A->right, B));
    }
private:
    bool recur(TreeNode* A, TreeNode* B) {
        if(B == nullptr) return true;
        if(A == nullptr) return false;
        return  A->val != B->val && recur(A->left, B->left) && recur(A->right, B->right);
    }
};
相关推荐
Smilecoc2 小时前
决策树(三):剪枝
算法·决策树·剪枝
bIo7lyA8v2 小时前
算法性能建模的数值方法与误差分析的技术8
算法
Smilecoc2 小时前
决策树(四):决策树实战之鸢尾花分类
算法·决策树·分类
-Thinker2 小时前
【无标题】
java·开发语言·算法·图搜索
数据仓库搬砖人2 小时前
DBSCAN 原理深度解析:从聚类算法到风控团伙识别的实战指南
算法
凡人叶枫2 小时前
Effective C++ 条款24:若所有参数皆须要类型转换,请为此采用 non-member 函数
linux·前端·c++·算法·嵌入式开发
洛水水2 小时前
【力扣100题】87.只出现一次的数字
数据结构·算法·leetcode
HZ·湘怡2 小时前
排序算法之希尔排序(2)--菜鸟先飞
数据结构·算法·排序算法·希尔排序
乐观勇敢坚强的老彭2 小时前
2026全国青少年信息素养大赛(Python小学组)复赛复习讲义
python·算法·数学建模
林间码客2 小时前
02数据挖掘:数据属性、类型与相似性度量
人工智能·算法·机器学习