题目:

有如下数据结构:

typedef struct TreeNode{char c;TreeNode *leftChild;TreeNode *rightChild;
};

现在实现函数:int CompTree(TreeNode *tree1, TreeNode *tree2);

比较两棵树是否相等

代码:

typedef struct TreeNode{char c;TreeNode *leftChild;TreeNode *rightChild;
};//两棵树相等的话返回1,否则返回0
int CompTree(TreeNode *tree1, TreeNode * tree2) {bool isTree1NULL = (tree1 == NULL);bool isTree2NULL = (tree2 == NULL);//如果两个树都是空的话if (isTree1NULL && isTree2NULL) return 1;//如果一棵树是空,而另外一棵树非空的话if (isTree1NULL != isTree2NULL) return 0;//如果两棵树都是非空的话if (tree1 ->c != tree2 ->c) return 0;return (CompTree(tree1->left, tree2->left) & CompTree(tree1->right, tree2->right)) |(CompTree(tree1->left, tree2->right) & CompTree(tree1->right, tree2->left));
}

数据结构 ACM :比较两棵树是否相等。相关推荐

  1. 【数据结构】判断两棵树是否相等的算法

    下面用先根遍历的思路描述算法的步骤: 若两棵二叉树都为空,则两棵二叉树相等,返回true; 若两棵二叉树都非空,则 若根结点的值相等,则继续判断它们的左子树是否相等: 若左子树相等,则再继续判断它们的 ...

  2. 【数据结构】检查两棵树是否相同

    问题:给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1/ \ / \2 3 2 3[1,2,3], [1 ...

  3. 百度面试题:判断两棵树是否相等

    请实现两棵树是否相等的比较,相等返回1,否则返回其他值,并说明算法复杂度. 数据结构为: typedef struct_TreeNode{ char c; TreeNode *leftchild; T ...

  4. LeetCode——Same Tree(判断两棵树是否相同)

    问题: Given two binary trees, write a function to check if they are equal or not. Two binary trees are ...

  5. C语言高墙高,院子里有两棵树。因为有高墙庇护,一棵树长得高大挺直。而另一棵...

    院子里有两棵树.因为有高墙庇护,一棵树长得高大挺直.而另一棵树就不一样,因为要去承受风雨的袭击,它不得不随风生存,树干也就歪曲斑驳. 相关句子 2.那样,等它的根扎下后,树就长得歪曲,不会挺直. 3. ...

  6. LeetCode-判断两棵树是否相同

    两颗树的情况可能如下图所示: 1 1/ \ / \2 3 2 31 1/ \ / \2 1 1 2 求解思路:1.先判断两棵树是否为空,如果均为空,那么两棵树肯定相同:如果有一个为空,则不同. 2.在 ...

  7. 类C语言--树习题:判别两棵树是否相等。

    此代码可以运行,下附有运行区 [题目分析]先判断当前节点是否相等(需要处理为空.是否都为空.是否相等),如果当前节点不相等,直接返回两棵树不相等;如果当前节点相等,那么就递归的判断他们的左右孩子是否相 ...

  8. 检查两棵树是否相同(力扣)图解、思路与实现

    给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 1先判断两棵树只要有一棵树不为空 那么就返回false: 2再判断两棵树都为空 那 ...

  9. 递归判断两棵树是否相同

    递归写法判断两棵树是否相同: bool flag = true; // 默认认为两棵树是相同的,递归判断过程中改变flag值,一旦有一个不同,就跳出 void judge(node* root1, n ...

最新文章

  1. python爬虫 发送定时气象预报
  2. 转换汉字为unicode形式的字符串和转换unicode形式字符串转换成汉字
  3. Vue.js之组件及其易错点
  4. JavaScript中使Promise模式进行异步编程
  5. linux mdev -s没有运行,mdev详解
  6. 远程协助的伪原创工具
  7. 基于jQuery实现垂直轮播效果
  8. JEESZ分布式框架--单点登录集成方案
  9. 生产者-消费者模型之集合LinkedBlockingQueue源码解读
  10. BIGEMAP APP离线卫星地图数据应用
  11. 角度换算数字在线计算机,角度换算成数字(计算器数字转角度换算)
  12. MongoDB是什么?看完你就知道了!
  13. 如何通便清肠快速见效_为什么有时候会一连几天没有排便?如何快速清肠通便?...
  14. win8计算机配置管理模板,win8.1用户帐户配置管理图文详解
  15. 毕业了,等待我们的是什么?
  16. 深度学习AI美颜系列----人像静态/动态贴纸特效算法实现
  17. python 修改图片尺寸_用Python更改图片尺寸大小
  18. 【Java案例】用户登录注册
  19. linux安装ati工具,安装ATIforlinux显卡驱动
  20. ipvlan:openEuler 系统docker网络测试

热门文章

  1. 制作自己的紫外线消毒盒
  2. Java面向对象程序设计(第二版)袁绍欣 第十五章课后习题答案
  3. 【笔记】判断今年是闰年还是平年
  4. 全国新冠疫苗接种剂次超13亿,未来将如何构建好“免疫长城”
  5. 基于java多特蒙德周边商城系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  6. 手撕Java类 Collector
  7. mabatis SqlSession,SqlSessionTemplate 线程安全
  8. C++设计模式——组合模式(composite pattern)
  9. 爬取艺恩数据榜单年度票房电影
  10. 2022双十一激光投影仪哪个好?当贝激光投影系列 高品质大品牌更有保障