LintCode2016年8月8日算法比赛----子树
子树
题目描述
有两个不同大小的二叉树:T1有上百万的节点;T2有好几百的节点。请设计一种算法,判定T2是否为T1的子树。
注意事项若 T1 中存在从节点 n 开始的子树与 T2 相同,我们称 T2 是 T1 的子树。也就是说,如果在T1节点n处将树砍
断,砍断的部分将与T2完全相同。
样例
下面的例子中 T2 是 T1 的子树:
1 3/ \ / T1 = 2 3 T2 = 4/4
下面的例子中T2不是T1的子树:
1 3/ \ \T1 = 2 3 T2 = 4/4
算法分析:
前面一道题目是判断两棵二叉树是否相等,可以直接利用前面的算法,将T1的所有子树与T2进行比较即可。
Java算法实现:
/*** Definition of TreeNode:* public class TreeNode {* public int val;* public TreeNode left, right;* public TreeNode(int val) {* this.val = val;* this.left = this.right = null;* }* }*/
public class Solution {/*** @param T1, T2: The roots of binary tree.* @return: True if T2 is a subtree of T1, or false.*/public boolean isSubtree(TreeNode T1, TreeNode T2) {// write your code hereboolean result=false;if(T2==null){return true;}else{if(T1!=null){result=isIdentical(T1, T2);if(!result){result=isSubtree(T1.left, T2);if(!result){result=isSubtree(T1.right, T2);}}}return result;}}public static boolean isIdentical(TreeNode a, TreeNode b) {// Write your code hereif(a==null&&b==null){return true;}else if(a==null||b==null){return false;}else{if(a.val!=b.val){return false;}else{boolean result=isIdentical(a.left, b.left);if(!result){return result;}else{result=isIdentical(a.right, b.right);return result;}}}}
}
转载于:https://www.cnblogs.com/dongling/p/5795933.html
LintCode2016年8月8日算法比赛----子树相关推荐
- 第11届蓝桥杯省赛真题剖析-2020年6月21日Scratch编程初中级组
[导读]:超平老师的<Scratch蓝桥杯真题解析100讲>已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第125讲. 第11届蓝桥杯省赛,这是2020年6月2 ...
- c++builder 6 转成vs_官方:欧洲杯将在2021年6月11日至7月11日进行,举办城市不变...
欧足联官方宣布,2020欧洲杯仍将在原定的12座城市举办,比赛时间定在2021年6月11日-7月11日. 希望退票的球迷可以在2020年6月18日至6月25日进行退票. 2020欧洲杯附加赛暂定于今年 ...
- 【12月17日更新决赛预测】用二元泊松模型预测2022年世界杯淘汰赛结果
用二元泊松模型预测2022年世界杯淘汰赛结果 网上有很多文章用双泊松(Double Poisson)模型来预测世界杯比赛结果.但是双泊松模型有一个严重的缺陷,那就是它假设比赛中两队的比分是条件独立的. ...
- ACwing算法基础课全程笔记(2021年8月12日开始重写+优化)
更好的阅读体验 ※基础模板 2021年8月12日开始对基础课笔记进行重写+优化 请大家支持AcWing正版,购买网课能让自己获得更好的学习体验哦~ 链接:https://www.acwing.com/ ...
- 11月14日云栖精选夜读 | 动画+原理+代码,解读十大经典排序算法
排序算法是<数据结构与算法>中最基本的算法之一. 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过 ...
- 8月18日 | 智能车竞赛云比赛过半,华南赛区成绩小结
01华南赛区成绩小结 1.高校与队伍 七个云端比赛点,共有31所高校108支参赛队伍参加了五个项目的竞赛.这七个赛点的高校与其参赛队伍见下表格: 表格1:参赛高校与队伍数量 序号 高校 队伍数量 1 ...
- Kaggle常用函数总结 原创 2017年07月03日 21:47:34 标签: kaggle 493 kaggle比赛也参加了好几次,在这里就把自己在做比赛中用到的函数汇总到这,方便自己以后查阅
Kaggle常用函数总结 原创 2017年07月03日 21:47:34 标签: kaggle / 493 编辑 删除 kaggle比赛也参加了好几次,在这里就把自己在做比赛中用到的函数汇总到这,方便 ...
- AI开发者大会之计算机视觉技术实践与应用:2020年7月3日《RPA+AI助力政企实现智能时代的人机协同》、《5G风口到来,边缘计算引领数据中心变革》、《数字化时代金融市场与AI算法如何结合?》
AI开发者大会之计算机视觉技术实践与应用:2020年7月3日<RPA+AI助力政企实现智能时代的人机协同>.<5G风口到来,边缘计算引领数据中心变革>.<数字化时代金融市 ...
- Paper:2020年3月30日何恺明团队最新算法RegNet—来自Facebook AI研究院《Designing Network Design Spaces》的翻译与解读
Paper:2020年3月30日何恺明团队最新算法RegNet-来自Facebook AI研究院<Designing Network Design Spaces>的翻译与解读 导读: 卧槽 ...
最新文章
- linux socket 套接字状态 EAGAIN EWOULDBLOCK EINTR 与非阻塞 简介
- SDUT_2121数据结构实验之链表六:有序链表的建立 (对建立的单项链表结构进行排序)
- C# 多线程,解决处理大数据时窗体(不能拖动等)假死现象
- NPL之如何使用Glove--词向量转化
- flashBuilder安装Subclipse与XMLBuddy插件
- minecraft java_minecraft java版本下载
- 软考·网络工程师认证(第八章)
- 干货 | 扫了那么多二维码,15款工具打造你的专属二维码
- 获取微信公众号地址的图片不能正常显示的问题
- 电脑爱好者——投稿与稿费指南
- hcl出现“Invalid ciphertext password.”错误的解决方法
- 在Gtalk中和你的msn,yahoo,icq/aim,qq好友聊天
- Oracle中查询用户表/索引/视图的创建语句
- 为什么mysql的delete操作不释放磁盘空间
- AttributeError: ‘Upsample‘ object has no attribute ‘recompute_scale_factor‘
- 第二章数据通信基础(冲!)
- 英语语法汇总(10.被动语态)
- C语言 两个整数的四则运算
- h5app 实现ios更新跳转appStore
- (初学者)使用DOSBox编写汇编程序