[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);
    }
};
相关推荐
阳洞洞6 分钟前
leetcode 92. Reverse Linked List II
leetcode·链表·list
IT古董7 分钟前
【漫话机器学习系列】269.K-Means聚类算法(K-Means Clustering)
算法·机器学习·kmeans
Darkwanderor23 分钟前
贪心算法题目合集2
c++·算法·贪心算法
Tisfy36 分钟前
LeetCode 3355.零数组变换 I:差分数组
算法·leetcode·题解·差分数组
刚入门的大一新生1 小时前
C++初阶-vector的模拟实现2
javascript·c++·算法
fouen3 小时前
贪心算法理论篇
数据结构·python·算法·贪心算法
祁同伟.4 小时前
【数据结构 · 初阶】- 快速排序
数据结构·算法·排序算法
小森77674 小时前
(八)深度学习---计算机视觉基础
人工智能·python·深度学习·算法·计算机视觉
eachin_z4 小时前
力扣刷题(第三十三天)
算法·leetcode·职场和发展
小雅痞5 小时前
[Java][Leetcode middle] 134. 加油站
java·leetcode