LeetCode-判断两棵树是否相同
两颗树的情况可能如下图所示:
1 1/ \ / \2 3 2 31 1/ \ / \2 1 1 2
求解思路:1.先判断两棵树是否为空,如果均为空,那么两棵树肯定相同;如果有一个为空,则不同。
2.在两棵树都不为空的情况下,先判断根结点数据是否相同,不相同则不同,否则,判断两棵树的左右子树是否相
同,只要有一个不同则不同,否则相同。
/*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/
bool isSameTree(struct TreeNode* p, struct TreeNode* q) {if(p != NULL && q == NULL){return false;}if(p == NULL && q != NULL){return false;}if(p == NULL && q == NULL){return true;}if(p->val != q->val){return false;}bool left = isSameTree(p->left,q->left);if(left != true){return false;}else{return isSameTree(p->right,q->right);}
}
LeetCode-判断两棵树是否相同相关推荐
- 递归判断两棵树是否相同
递归写法判断两棵树是否相同: bool flag = true; // 默认认为两棵树是相同的,递归判断过程中改变flag值,一旦有一个不同,就跳出 void judge(node* root1, n ...
- LeetCode——Same Tree(判断两棵树是否相同)
问题: Given two binary trees, write a function to check if they are equal or not. Two binary trees are ...
- 【数据结构】判断两棵树是否相等的算法
下面用先根遍历的思路描述算法的步骤: 若两棵二叉树都为空,则两棵二叉树相等,返回true; 若两棵二叉树都非空,则 若根结点的值相等,则继续判断它们的左子树是否相等: 若左子树相等,则再继续判断它们的 ...
- 百度面试题:判断两棵树是否相等
请实现两棵树是否相等的比较,相等返回1,否则返回其他值,并说明算法复杂度. 数据结构为: typedef struct_TreeNode{ char c; TreeNode *leftchild; T ...
- 代码实现判断两棵树是否相等
//两棵树是否相等 bool compare(const Node *root1,const Node *root2){if (root1==NULL&&root2==NULL){re ...
- 判断两棵树是否相等与使用二叉链表法建立二叉搜索树
//判断两个二叉树是否相等 //提问如果两个二叉树的前序遍历相等,能否说明,这两个树相等? //答案是否定的,只有这两个树的 A前序=B前序,A中序=B中序才可以. BOOL isEqualTree( ...
- python【数据结构与算法】判断两棵树是否相等
# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # sel ...
- 判断两个树是否相同判断一棵树是否是一棵树的子树
判断两棵树是否相同 方法:对两棵树同时做相同的递归判断其值或者是结构是否相同. 以下代码用的是前序遍历.递归方法(毕竟递归好理解而且代码少得可怜). 比较啰嗦的是指针为空的情况,只要把这些情况单独列出 ...
- 判断一棵树是否是另一棵树的子树(Java实现)
前面一篇文章介绍了如何判断两棵树相等,思路就是遍历每个节点,然后判断是否均相等,需要用递归来实现.如果需要判断一棵树是另一棵树的子树,该怎么办呢?我们需要借助前面的思路,需要先判断两棵树相等,这里就是 ...
- LeetCode另一棵树的子树
572. 另一棵树的子树 给你两棵二叉树 root 和 subRoot .检验 root 中是否包含和 subRoot 具有相同结构和节点值的子树.如果存在,返回 true :否则,返回 false ...
最新文章
- python搭积木_从零实现”搭积木式实现策略“的回测系统 part VI
- 成为人工智能视觉应用工程师需要多久?我用了45天!
- Python---堆里有16颗豆子,有两个玩家依次取豆
- JVM-12虚拟机性能监控与故障处理工具之【JDK的可视化工具-VisualVM】
- 在rancher服务器页面添加Host
- 联想拯救者y空间兑换代码_锐祥贴片Y电容进入联想手机快充供应链,性能获世界500强认可...
- html实现div打印,如何在html div的中间打印/附加从按钮单击的值?
- 数组去重(JavaScript)先从网上整理一波,待验证
- 【渝粤教育】21秋期末考试工程项目管理10324k2
- “约见”面试官系列之常见面试题之第七十六篇之vue-router中的路由钩子函数基本用法 (建议收藏)
- VMWARE双机安装说明
- Python @property装饰器的用法,判断函数参数整形、字符串、取值范围
- Android中如何使按钮的背景变得透明
- qt如何把父窗口的变量传给子窗口_子窗体显示的时候怎么让父窗体阻塞并且子窗体可以任意移动?...
- NYOJ98 - 成绩转换
- SpringMVC:学习笔记(1)——理解MVC及快速入门
- 昂达 v891 v1 终于 删除 windows 分区 并且恢复了容量。
- 对区块链技术的一些思考
- 非满管电磁流量计测量平均流速
- 七万字详解paddle-openVINO【CPU】-从环境配置-模型部署全流程
热门文章
- Android集成谷歌定位sdk,概述-Android 定位SDK | 高德地图API
- 阿里云服务器如何购买?2023新手指南
- 风变编程python小课怎么样_风变编程Python小课最近很火,大家学完感受如何?
- 办公pdf转word等软件的网站--往后找到再继续更新
- Adaboost原理
- 六、教师管理-列表查询、分页、搜索
- 视频怎么压缩大小?简单的压缩办法在这里
- html5 简单图片效果,【HTML5】Canvas绘制简单图片教程,
- 2022 超多姓氏头像微信小程序源码
- C++ 设计模式原理与实战大全-架构师需备课程-夏曹俊-专题视频课程