2017.1.10 算法测试题集 - 1002 - 相等二叉树
来源:互联网 发布:淘宝身份证开过店 编辑:程序博客网 时间:2024/05/20 00:16
Problem
给定两棵二叉树,判断这两棵二叉树是否相等。当且仅当两棵树结构相同且对应节点的取值也相同时,两棵二叉树相等。
Example
A: 1 / \ 2 3 / \ \5 6 7B: 1 / \ 2 3 / \ / 5 6 7 C: 1 / \ 2 3 / \ \5 6 7A==C,A!=B
Algorithm
联系树的结构来做,递归判断本节点以及左右子节点。
需要注意判断本节点是否为空。
其实这题是LeetCode上有的原题,博客上也写过: LeetCode #100 - Same Tree - Easy(http://blog.csdn.net/arcome/article/details/53103421)
第一次提交的代码如下。
//TLEclass Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if(p==NULL&&q==NULL) return true; if(p==NULL&&q!=NULL||p!=NULL&&q==NULL) return false; if(p->val==q->val) return isEqual(p->left,q->left)&isEqual(p->right,q->right); else return false;};
提交以后发现居然超时,然而并不知道是什么原因。于是尝试修改代码,把第7行的else去掉以后,居然就通过了 - -
通过的代码如下。
//ACclass Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if(p==NULL&&q==NULL) return true; if(p==NULL&&q!=NULL||p!=NULL&&q==NULL) return false; if(p->val==q->val) return isEqual(p->left,q->left)&isEqual(p->right,q->right); return false;};
之前写这题时候的通过代码如下。与考试时候写的还是有区别的,在判断两个节点是否为空的判断写法有不同。
//BEFOREclass Solution {public: bool isSameTree(TreeNode* p, TreeNode* q) { if(p==NULL&&q==NULL){return true;} else if(p==NULL||q==NULL){return false;} if(p->val!=q->val){return false;} else { return isSameTree(p->left,q->left)&&isSameTree(p->right,q->right); } }};
0 0
- 2017.1.10 算法测试题集 - 1002 - 相等二叉树
- 二叉树是否相等
- 字符串原始匹配和二叉树相等算法
- 二叉树的相等比较
- 判断二叉树是否相等
- 判断二叉树是否相等:
- 判断二叉树是否相等
- 比较两颗二叉树是否相等
- 关于二叉树的宽度,高度,相等
- 判断两棵二叉树是否相等
- 判断两棵二叉树是否相等
- 判断两棵二叉树是否相等
- 判断2棵二叉树是否相等
- 【LeetCode】Same Tree --- 二叉树相等
- 二叉搜索树判断子树相等
- Same Tree判断二叉树相等
- 【数据结构】判断两个二叉树是否相等
- 关于二叉树的宽度,高度,相等
- XPath总结
- Redis数据库的dump备份与aof备份
- 数据库入门之常用模板汇总
- IE中使用Uploadify文件上传插件报错: SCRIPT5007: 缺少对象
- 史上最全的ReactNative视频
- 2017.1.10 算法测试题集 - 1002 - 相等二叉树
- 史上最大DDoS攻击的本质与防范
- 多线程-1、NSThread
- 时间处理的工具类
- Deep learning 的一点点笔记
- Multi-Class Classification Tutorial with the Keras Deep Learning Library
- CSS滤镜效果(俗称毛玻璃)
- 洛谷 1120 小木棍 [数据加强版]
- java HashMap--统计其中有相同value的key的个数