【题目描述】
You have two every large binary trees:T1, with millions of nodes, and T2, with hundreds of nodes. Create an algorithm to decide if T2 is a subtree of T1.
Notice:A tree T2 is a subtree of T1 if there exists a node n in T1 such that the subtree of n is identical to T2. That is, if you cut off the tree at node n, the two trees would be identical.
有两个不同大小的二叉树:T1有上百万的节点;T2有好几百的节点。请设计一种算法,判定T2是否为T1的子树。
【注】若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在 T1 节点 n 处将树砍断,砍断的部分将与 T2 完全相同。
【题目链接】
www.lintcode.com/en/problem/subtree/
【题目解析】
判断 T2是否是 T1的子树,首先应该在 T1中找到 T2的根节点,找到根节点后,两棵子树必须完全相同。所以整个思路分为两步走:第一:找根节点,第二:判断两棵树是否全等。看起来很简单,但实际实现时还是细致一点,尤其要注意递归的先后顺序、条件与&条件或的处理。
【参考答案】
www.jiuzhang.com/solutions/subtree/
转载于:https://my.oschina.net/u/3776581/blog/1618917
分享到:
相关推荐
java java_leetcode题解之Most Frequent Subtree Sum.java
Git Subtree是一种在版本控制系统Git中使用的技术,它允许将一个仓库中的分支或提交作为一个子目录合并到另一个仓库中。相对于Submodule,Git Subtree是另一种管理子模块的方法。Git Submodule是Git官方推出的一个...
在IT领域,数据挖掘是至关重要的一个分支,而“SubTree Mining”则专注于发现数据库中频繁出现的子树模式。这个程序是用Java语言编写的,它提供了一种有效的方法来处理树形结构数据,特别是在数据库中寻找重复或频繁...
### 数据结构教程与题解 —— 树形结构章节知识点详解 #### 一、树形结构概述 **树形结构**是一种重要的非线性数据结构,用于描述数据元素之间的一对多逻辑关系。这种结构中的节点形成分支和层次关系,类似于自然...
最大公共子树(Maximal Common Subtree, MCST)查找问题是计算机科学领域中的一个重要课题,它涉及到多种数据结构和算法设计,尤其在计算机设计、符号计算、程序设计理论、生物信息学、网络及半结构化数据挖掘等领域...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
例如,如果通用代码库是“common”,你可能会运行`git subtree add --prefix=src/common subtree-sample-common-repo master`,将“subtree-sample-common-repo”的master分支内容添加到项目中的“src/common”目录...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装
离线安装包,亲测可用
树编辑距离用于子树相似性搜索的索引技术 在信息技术领域,尤其是在处理结构化数据如XML文档和生物信息学中的RNA二级结构时,树结构数据模型的相似性搜索是一个基础且重要的问题。Sara Cohen在其2013年发表于SIGMOD...
离线安装包,亲测可用
Lerna-subtree-发布你需要什么用于具有以下设置的 mono存储库: lerna.jsonpackage.jsonsubtrees.jsonpackages/ a/ package.json b/ package.json通常,每个程序包都位于按配置的单独子存储库中。 我们还假定您要对...
Git-subtree 是 Git 中的一个高级工具,用于将一个 Git 子目录作为一个独立的 Git 仓库进行管理和合并。这个工具在处理复杂项目结构时非常有用,尤其是当你需要在多个项目之间共享代码库,或者在一个大型项目中引入...
Git子树合并(Git Subtree)是Git中一个强大的功能,它允许你在单个Git仓库中集成另一个Git仓库。这个工具对于大型项目尤其有用,它能够帮助管理项目的模块化,保持代码库的整洁,同时又能方便地与其他独立的代码库...
intl, [READ ONLY] Subtree组件的子树拆分 组件用于C 扩展的PHP替换层,它还提供对ICU库的本地化数据的访问。替换层仅限于区域设置"en"。 如果要使用其他语言环境,则应使用 [install the intl PHP extension] 0 。...
Maximum White Subtree time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output You are given a tree consisting of n vertices. A tree is a connected ...
吞咽子树 一个小 gulp 模块,可让您将文件夹推送到 git 子树,而无需将该文件夹保留在您的 git 历史记录中。 强烈建议与一起使用。 重要的!... var subtree = require ( 'gulp-subtree' ) ; var clean =