二叉树相似

            递归判断两棵树是否相似

bool IsSemblable2(BiTree T1,BiTree T2)
{
bool leftS = false,rightS = false; //用来接受子树返回的信息,此步骤可不写
if(T1 == NULL && T2 == NULL) // 两个结点都为空
{return true; } //两节点多为空的时候,执行返回T
else if(T1 == NULL || T2 == NULL) //之前已经判断过两节点不可能多为空,那么有一个结点不为空
{ return false; } //若有节点为空,返回F
else
{
int leftS = IsSemblable2(T1->lchild,T2->lchild); //递归左子树,接受子树返回的信息
int rightS = IsSemblable2(T1->rchild,T2->rchild); //递归右子树,接受子树返回的信息
return leftS && rightS ; //向上一级返回两个子树的信息,如果左右子树有一个不符合相似,那么返回F
}
}

        &&一假全假,||一真全真。  


             判断两棵树是否相似 树形一样 数值不一样 

bool IsSimilar(BTNode *t1,BTNode *t2){
if(t1==null && t2==null) return true;
if(t1==null || t2==null) return false;
else{
return IsSimilar(t1->lchild,t2->lchild) &&
IsSimilar(t1->rchild,t2->rchild);
}
}

                   判断该两棵树是否相等 

bool IsEqual(BTNode *t1,BTNode *t2)
{
if(t1==null && t2==null)
return true;
if(t1==null || t2==null)
return false;
if(t1->data==t2->data) //判断数值是否相同
{
return IsEqual(t1->lchild,t2->lchild) &&IsEqual(t1->rchild,t2->rchild) //层层递归,并判断数值是否相同
}
else
{
return false;
}
}

全部评论

相关推荐

04-16 10:27
已编辑
美团_Saas_后端开发
今天周一休息,突发奇想写一篇阶段总结。如题,我已经去了一个和Java彻底毫无关联的行业。曾经我以为自己能在计算机行业发光发热,拿到美团offer那会感觉自己天都亮了。没想到刚入行一年多就当了逃兵。从最开始的热爱到现在一看到代码就厌恶,不知道自己经历了什么。所以我去干什么了?答案是:在成都当了租房销售。上班那会压力大了就念叨着去干租房中介,但是一直下不去这个决心,想着自己学了四年多的计算机知识,终究还是不甘心。终于在某一天准备八股文的时候,看着无数篇和工作内容关系不大的理论知识,那一刻下定决心,决定尝试一下销售行业,也算是给自己一个交代。后面阴差阳错的投了成都自如去当租房管家,没想到面试很顺利,在当天一百多个面试的人里面,我成为了为数不多通过的几个幸运儿之一。目前已经培训通过,正式入职,也开了单,有压力但是每天过得很开心,真心喜欢那种和人交流的感觉,哪怕是最后没有选择找我租房。说这些也是想告诉那些大三,大四正在找Java实习而焦虑的同学:你们现在还年轻,选择很多,容错率也很高,可以尽情去尝试自己喜欢的行业和工作。不用因为某一次的面试没通过或者简历石沉大海而焦虑,更不用因为身边人都在挤编程的独木桥就强迫自己跟风。也算是自己的碎碎念吧,也希望自己能在新的领域取得一点小成就。也祝牛油工作顺利!
沉淀小子:干啥都不丢人啊,生存是必须要的,销售很考验一个人综合素质能力的,好的销售人脉和资源可不比写字楼的白领差啊
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务