代码编织梦想

572. 另一棵树的子树

 


题目

传送门:https://leetcode.cn/problems/subtree-of-another-tree/


 


算法设计:深度优先搜索

遍历以 root 为根的这棵二叉树的所有节点,判断以该节点为根的子树是否和以 subRoot 为根的那棵树相同。

class Solution {
public:
    bool isSubtree(TreeNode* s, TreeNode* t) {   
        if(!s) return false;
        if (isSame(s,t)) return true;          // 枚举父节点和TA下面的孩子节点能否产生相同的结构
        return isSubtree(s->left, t) || isSubtree(s->right, t);  
        // 去左右子树中判断是否有和 subRoot 相同的子树 
    }
    bool isSame(TreeNode *s, TreeNode *t) {    // 判断俩个节点是否相同
        if (!s && !t) return true;
        if (!s || !t) return false;
        if (s->val != t->val) return false; 
        return isSame(s->left, t->left) && isSame(s->right, t->right);  
        // 判断其他节点是否相同  
    }
};
可联系我,一起学习。
本文链接:https://blog.csdn.net/qq_41739364/article/details/128815418

判断一棵树是否为另一棵树的子树_love music.的博客-爱代码爱编程_判断一棵树是否是另一棵树的子树

参考链接:判断一棵树是否为另一棵树的子树 思路: 1、原二叉树走前序遍历,试图发现哪个节点的值和被判断子树的根节点相同; 如果一直到最后也没有找到那么肯定不是 2、如果找到了,就两个二叉树一起前序遍历,试图发现两个二叉树同时遍历完成,且同样的左右子树遍历过程中的节点值均相同,同时遍历完成说明有相同的形状,左右子树遍历过程中的节点值均相同说明两个二叉

⭐算法入门⭐《二叉树》简单08 —— LeetCode 572. 另一棵树的子树-爱代码爱编程

文章目录 一、题目1、题目描述2、基础框架3、原题链接二、解题报告1、思路分析2、时间复杂度3、代码详解三、本题小知识四、加群须知 一、题目 1、题目描述   给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false

【leetcode】另一棵树的子树 c++-爱代码爱编程

题目描述: 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。 示例1: 输入:root = [3,

leetcode 572. 另一棵树的子树-爱代码爱编程

另一棵树的子树 题目题解2021.12.7 题目 题解 递归 官方题解还用到了kmp和哈希的。。。。这里我就没看了 2021.12.7 这题的递归,我有点没弄明白,后来看了题解才忽略了,两个二叉树完全相等的情况。。。。 class Solution { public: bool check(TreeNode*root,Tr

力扣572(另一棵树的子树)-爱代码爱编程

力扣572(另一棵树的子树) 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。 来源:力扣(L

Leetcode--Java--572. 另一棵树的子树-爱代码爱编程

题目描述 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。 样例描述 思路 递归 看左子树是否是

572. 另一棵树的子树(javascript)572. Subtree of Another Tree-爱代码爱编程

给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree 也可以看做它自身的一棵子树。 Given the roots of two binar

[c题目]力扣572. 另一棵树的子树_glc8866的博客-爱代码爱编程

bool TreeSame(struct TreeNode* p,struct TreeNode* q) { if(p==NULL&&q==NULL) return true; if(p==NULL||q==NULL) return false; if(p->val!

【leetcode】965. 单值二叉树、100. 相同的树、572. 另一棵树的子树-爱代码爱编程

 作者:一个喜欢猫咪的的程序员 专栏:《Leetcode》 喜欢的话:世间因为少年的挺身而出,而更加瑰丽。                                  ——《人民日报》 目录 965. 单值二叉树   100. 相同的树 572. 另一棵树的子树 965. 单值二叉树  965

[leetcode] 572.另一棵树的子树_572. 另一个树的子树java-爱代码爱编程

比较t是否为s的子位元树 给定两个非空的二叉树 s 和 t,检查树t是否 具有与s的子树完全相同的结构和节点值 。子树 小号 是一个树由一个节点的 小号 和所有这个节点的后代的。树 小号 也可以被认为是其自身的子树。台湾是

leetcode 572.另一个树的子树_lc 572. 另一棵树的子树 要求每棵树只能遍历一次 on-爱代码爱编程

让我们来欣赏一道只有47%通过率的“简单”题。 题目部分 572. 另一棵树的子树 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树。如果存在,返回 true ;否则,返回 false 。 二叉树 tree 的一棵子树包括 tree 的某个节点和这个节点的所有后代节点。tree