书接上回,原本安静如潭水的广场,在陆陆续续答完题的考生结束后,变得热闹起来、每个人不已翘首观望,等待广场中央的那一块屹立了百年的石碑发出成绩。据说这块石碑是暴力宗创始人:暴力小王子亲自安放的,为了暴力宗千百年不衰!
忽闻山上钟声响起!
咚~~~
咚~~~
咚~~~
什么!宗主出山了!!这可是宗族召集宗派会议的召集钟!!
没想到今年宗主也会来看看这届的子弟啊!!第一监考官说到。
话语刚落,一个双鬓细白,体型壮硕的男子一跃而下,从山上的藏书楼飞向广场。
参见宗主!!!
纵时间声音响彻在整个山谷内。
免礼吧,你们继续,我出来透透气罢了!暴力哥说到。
是!众监考官应声回到。
下面我们开始公布成绩!
第十名:
一位数组家族,又越界公子!
哦耶!!只见一男子奋起而上,领过外院令牌,蹦蹦跳跳上山去了、
第九名:
for循环家族、死循环公子!
第八名:
指针家族、针空空小姐!
第七名:.................................
现在颁发前三名!!
第三名:
搜索家族、深搜、广搜双胞胎评分相同,并列第三!
只见人群中出来俩人,一人极高极瘦,另一人却极胖,极矮!
现在颁发第二名:
动态规划家族、脑壳疼公子。
只见一人穿着神神秘秘的男子上前,拿了令牌就走,甚是奇怪。
到了激动人心的时刻,第一名是:
暴力宗首席大弟子,O(n^n)公子!!
我靠,******,有内幕!!!
话说那位用时半炷香的哥们去哪了呢?原来他已经去内院了~~~
不过今日他还在这里,继续考核内院选拔,转眼间,一人身着破烂衣服,脚踏人字拖,时不时还在抠鼻屎,只见他一跃而上,落到了石碑之下,说到,拿题来!!
这时,宗主暴力哥说到,慢着、“小伙子,你很叼啊!”,“那不然”鼻屎哥回到,“行吧,今天做我给的题”,一道卷轴落下,开始了今日的内院选拔!
给定两个二叉树,root1,root2。判断root1的节点是否完全包含root2。
鼻屎哥心想,“*****,提到大石头了,要完蛋。”
斗转星移,转眼就到了半夜,鼻屎哥终于动手了!!
本题很好理解,可以认为,就是给你一个大树丛,判断所有枝丫,是否有和指定枝丫(树)完完全全相同的枝丫,连树叶也是相同的。
首先使用前中后任意一个遍历方式,遍历每个节点,然后写一个判断方法,判断每个节点的是否和root2完全相同。
class Solution {
public boolean isSubtree(TreeNode root, TreeNode subRoot) {
dfs(root, subRoot);
return f;
}
boolean f = false;
//遍历节点
void dfs(TreeNode root, TreeNode subRoot) {
if (f) {
return;
}
if (root == null) {
return;
}
if (chak(root, subRoot)) {
f = true;
}
dfs(root.left, subRoot);
dfs(root.right, subRoot);
}
//判断是否相同的方法
boolean chak(TreeNode left, TreeNode right) {
if (left == null && right != null) {
return false;
} else if (left != null && right == null) {
return false;
} else if (left == null && right == null) {
return true;
} else if (left.val != right.val) {
return false;
}
boolean zuo = chak(left.left, right.left);
boolean you = chak(left.right, right.right);
return zuo && you;
}
}
当男子放下笔那一刻,广场又一次热闹起来!!
没想到还有人能够解出暴力哥的题目,不得了啊!!
暴力哥心中暗想,这人很厉害,必须是我宗的!
鼻屎哥写完后,问道:“怎么样?还行吧??”
暴力哥说到:“不错,暴力宗欢迎你的到来,我们算法阁见!哪里高手如云,等着你!”
转眼间,暴力哥消失在视野里。
这一场惊心动魄的外院、内院选拔赛也就落下帷幕。
敬请期待,《内院趣事》