【二叉树】572. 另一棵树的子树

这篇具有很好参考价值的文章主要介绍了【二叉树】572. 另一棵树的子树。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

572. 另一棵树的子树

解题思路

  • 遍历二叉树的思路
  • 针对每一个节点判断该节点的子树和subtree是不是相等
  • 需要编写判断两个子树是否相等的函数



/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    // 比较两个树是不是相等
    public boolean isSame(TreeNode root,TreeNode root1){

        // 二叉树的遍历问题  针对当前节点  写出所有递归出口
        if(root == null && root1 == null){
            return true;
        }

        if(root == null || root1 == null){
            return false;
        }

        if(root.val != root1.val){
            return false;
        }

        return isSame(root.left,root1.left) && isSame(root.right,root1.right);
    }


    public boolean isSubtree(TreeNode root, TreeNode subRoot) {
            // 二叉树的遍历问题  针对二叉树每一个点继续遍历  模板题

            // 对于遍历到的每一个节点  也就是先写出递归出口
            if(root == null){
                return subRoot == null;
            }

            if(isSame(root,subRoot)){
                return true;
            }

            // 从左右子树开始继续寻找是否有相同的子树
            return isSubtree(root.left,subRoot) || isSubtree(root.right,subRoot);

    }
}

文章来源地址https://www.toymoban.com/news/detail-665143.html

到了这里,关于【二叉树】572. 另一棵树的子树的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手撕数据结构与算法——树(三指针描述一棵树)

    📖作者介绍:22级树莓人(计算机专业),热爱编程<目前在c++阶段, 因为最近参加新星计划算法赛道(白佬),所以加快了脚步,果然急迫感会增加动力 ——目标Windows,MySQL,Qt,数据结构与算法,Linux,多线程,会持续分享学习成果和小项目的 📖作者主页:king南星 📖

    2024年01月17日
    浏览(54)
  • 根据列表构造一棵树

    List allMenus = menuDao.findBy(“status”, Status.AVAILABLE.getKey(), “priority”, false); List rootMenu = new ArrayList (); if (CollectionUtils.isNotEmpty(allMenus)) { MapLong, Menu menuMap = new HashMapLong, Menu(); for (Menu menu : allMenus) { if (menu.getParentId() == null) { rootMenu.add(menu); } menuMap.put(menu.getId(), menu); } for (Menu menu :

    2024年02月08日
    浏览(29)
  • 数据结构中的一棵树

    一、树是什么? 有根有枝叶便是树!根只有一个,枝叶可以有,也可以没有,可以有一个,也可以有很多。 就像这样: 嗯,应该是这样: 二、一些概念 1、高度 树有多高,嗯,我一米八三! 树的高度怎么算? 高度是啥,就是从下往上到最顶端,从叶节点到根节点。 从每个

    2024年01月21日
    浏览(33)
  • leetcode 572. 另一颗树的子树

    这道题重在思路,默认大家会判断两个树是否完全相同 我会把一些基础的简单的(包括  判断两个树是否完全相同   和之前的 求结点个数 )单独出博客,或者放在介绍堆和树的知识点里面 给你两棵二叉树 root 和 subRoot 。检验 root 中是否包含和 subRoot 具有相同结构和节点值

    2024年02月04日
    浏览(31)
  • 【Leetcode】相同的树、对称二叉树、另一颗树的子树

    目录 💡相同的树 题目描述 思路: 代码: 💡对称二叉树 题目描述 思路: 代码: 💡另一棵树的子树 题目描述 思路: 代码: 💡总结   给你两棵二叉树的根节点  p  和  q  ,编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同,并且节点具有相同的值,则

    2024年02月04日
    浏览(40)
  • 二叉树 — 返回最大的二叉搜索子树大小

    题目: 给定一棵二叉树的head节点,返回这颗二叉树中最大的二叉搜索子树的大小。 一颗二叉树来讲,可能整棵树不是搜索二叉树,但子树是一颗搜索二叉树。如下图所示,这时要返回这颗子搜索二叉树的最大节点个数。下图中,最大的二叉搜索子树大小为:3(5 - 1 - 7)。

    2024年02月13日
    浏览(48)
  • 【二叉树】大学有棵树叫高数,数据结构也有棵二叉树-代码详解

    普通二叉树增删查改没有什么价值,因为用来存数据,太复杂了 价值体现 1.搜索二叉树(最多查找高度次) ,平衡搜索二叉树,ALV树 红黑树 B 树 -最坏情况O(N) 2.哈夫曼树 二叉树结构 以存放字符为例子 快速构建一颗二叉树 树的结构 前序遍历 前序遍历(Preorder Traversal 亦称先序遍

    2023年04月08日
    浏览(41)
  • 【数据结构】用Java实现一棵二叉树

    目录 前言 1. 创建MyBinaryTree类 2. 从前序与中序遍历序列构造二叉树 3. 从中序与后序遍历序列构造二叉树 4. 用层序遍历验证二叉树是否构建成功 5. 整体代码(构建二叉树、二叉树的基本功能和测试代码) 6. 测试结果 前面两篇文章已经给出了如何构建二叉树以及如何实现基本

    2024年02月11日
    浏览(43)
  • 〖数据结构〗一棵有点自律的树——搜索二叉树

    🌸作者简介: 花想云 ,在读本科生一枚,致力于 C/C++、Linux 学习。 🌸 本文收录于 C++系列 ,本专栏主要内容为 C++ 初阶、C++ 进阶、STL 详解等,专为大学生打造全套 C++ 学习教程,持续更新! 🌸 相关专栏推荐: C语言初阶系列 、 C语言进阶系列 、 数据结构与算法 、 Linu

    2024年02月08日
    浏览(41)
  • LeetCode算法二叉树—222. 完全二叉树的节点个数

    目录 222. 完全二叉树的节点个数 - 力扣(LeetCode) 代码: 运行结果:  给你一棵  完全二叉树  的根节点  root  ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集

    2024年02月07日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包