力扣572:另一棵树的子树

简介: 力扣572:另一棵树的子树

力扣572:另一棵树的子树


给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。


二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。


示例 1:

输入:root = [3,4,5,1,2], subRoot = [4,1,2]

输出:true

示例 2:

输入:root = [3,4,5,1,2,null,null,null,null,0], subRoot = [4,1,2]

输出:false


提示:


root 树上的节点数量范围是 [1, 2000]

subRoot 树上的节点数量范围是 [1, 1000]

-104 <= root.val <= 104

-104 <= subRoot.val <= 104


递归思想

遍历根节点的左子树和右子树,在左子树和右子树中找是否有相同的子树

如果根节点为空,则返回false,如果存在相同的树,则返回true

这里需要加一个判断树相同的函数,判断树相同小编在之前也写过–>力扣100:相同的树

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {
    if(p==NULL&&q==NULL)
        return true;
    if(p==NULL||q==NULL)
        return false;
    if(p->val!=q->val)
        return false;
    return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right);
}
bool isSubtree(struct TreeNode* root, struct TreeNode* subRoot){
    if(root==NULL)
        return false;
    if(isSameTree(root,subRoot))
        return true;
    return isSubtree(root->left,subRoot)||isSubtree(root->right,subRoot);
}
目录
相关文章
|
3天前
每日一题 --- 力扣2003—每棵子树内缺失的最小基因值
每日一题 --- 力扣2003—每棵子树内缺失的最小基因值
LeetCode | 572. 另一棵树的子树
LeetCode | 572. 另一棵树的子树
|
3天前
力扣 572. 另一棵树的子树
力扣 572. 另一棵树的子树
21 0
|
7月前
【Leetcode -965.单值二叉树 -572.另一颗树的子树】
【Leetcode -965.单值二叉树 -572.另一颗树的子树】
17 0
力扣572 另一棵树的子树
力扣572 另一棵树的子树
53 0
|
程序员
【Leetcode】965. 单值二叉树、100. 相同的树、572. 另一棵树的子树
【Leetcode】965. 单值二叉树、100. 相同的树、572. 另一棵树的子树
70 0
【Leetcode】965. 单值二叉树、100. 相同的树、572. 另一棵树的子树
|
算法
LeetCode 第 1373 题:二叉搜索子树的最大键值和
在判断是否为 BST 的时候,可以使用后序遍历来记录 root 的左右子树是否为 BST 并且返回 root 树的最大和最小值,以及 root 的键值和。
70 0
LeetCode每日一题——652. 寻找重复的子树
给定一棵二叉树 root,返回所有重复的子树。
59 0
LeetCode每日一题——652. 寻找重复的子树
LeetCode每日一题——508. 出现次数最多的子树元素和
给你一个二叉树的根结点 root ,请返回出现次数最多的子树元素和。如果有多个元素出现的次数相同,返回所有出现次数最多的子树元素和(不限顺序)。
67 0
LeetCode每日一题——508. 出现次数最多的子树元素和
|
3天前
|
算法 C++
【刷题】Leetcode 1609.奇偶树
这道题是我目前做过最难的题,虽然没有一遍做出来,但是参考大佬的代码,慢慢啃的感觉的真的很好。刷题继续!!!!!!
9 0