1. 题目

给定两个二叉树,编写一个函数来检验它们是否相同。

如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。

2. 解题

2.1 递归

class Solution {public:bool isSameTree(TreeNode* p, TreeNode* q) {if(!p && !q)return true;bool ans = true;same(p,q,ans);return ans;}void same(TreeNode* r1, TreeNode* r2, bool &ans) {if(ans == false)return;if(!r1 && !r2){ans = true;return;}if(r1 && r2 && r1->val == r2->val){same(r1->left,r2->left,ans);same(r1->right,r2->right,ans);}elseans = false;}
};

2.2 按层遍历

class Solution {public:bool isSameTree(TreeNode* p, TreeNode* q) {if(!p && !q)return true;if((p && !q)||(!p && q))return false;queue<TreeNode*> q1, q2;q1.push(p),q2.push(q);while(1){if(q1.front()->val != q2.front()->val){return false;}if(q1.front()->left && q2.front()->left)q1.push(q1.front()->left),q2.push(q2.front()->left);else if((q1.front()->left && !q2.front()->left)||(!q1.front()->left && q2.front()->left))return false;if(q1.front()->right && q2.front()->right)q1.push(q1.front()->right),q2.push(q2.front()->right);else if((q1.front()->right && !q2.front()->right)||(!q1.front()->right && q2.front()->right))return false;q1.pop(),q2.pop();if((q1.empty()&&!q2.empty())||(!q1.empty()&&q2.empty()))return false;if(q1.empty()&&q2.empty())return true;}return true;}
};

LeetCode 100. 相同的树(二叉树遍历)相关推荐

  1. 37. Leetcode 100. 相同的树 (二叉树-二叉树性质)

    给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同.如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的.示例 1:输入:p = [1,2,3], q = [1,2, ...

  2. 四 . LeetCode标签刷题——树/二叉树(一) 算法部分

    各种二叉树的介绍汇总: 二叉树:最多有两棵子树的树被称为二叉树 满二叉树:二叉树中所有非叶子结点的度都是2,且叶子结点都在同一层次上 完全二叉树:如果一个二叉树与满二叉树前m个节点的结构相同,这样的二 ...

  3. LeetCode 100相同的树101对称二叉树

    微信搜一搜:bigsai 大家都在关注的刷题.学习数据结构和算法宝藏项目 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: (https://bigsai.blog.csdn.net/articl ...

  4. Leetcode 100.相同的树

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

  5. Leetcode 100. 相同的树 (每日一题 20210811)

    给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同.如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的.示例 1:输入:p = [1,2,3], q = [1,2, ...

  6. LeetCode 100.相同的树(C++)

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

  7. LeetCode 100. 相同的树 思考分析

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

  8. LeetCode 310. 最小高度树(广度优先遍历)

    题目描述 对于一个具有树特征的无向图,我们可选择任何一个节点作为根.图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树.给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的 ...

  9. Leetcode 100. 相同的树 解题思路及C++实现

    解题思路: 这道题利用递归的方法. 先对当前的节点p和q进行非null判断,如果均为null,则返回true: 如果一个为null,另一个非null,则返回false: p q均为非null,则比较它 ...

最新文章

  1. 用java写一个折半查找_用Java写一个折半查找。
  2. .net framework 4.0环境下遇到版本不同编译不通过的解决办法
  3. linux部署Nexus OSS
  4. hiveserver或者hive启动出现Expected authority at index 7问题解决
  5. printf函数源码linux,再来一版简易的printf函数实现
  6. Java线程类的继承结构
  7. Redis在windows下安装说明
  8. hbase 安装_如何搭建一个HBase集群
  9. 对Java回调函数的理解
  10. python读取、保存npy文件
  11. php开发App接口
  12. 那些好玩的生成器网站
  13. 室内定位技术之UWB篇
  14. NOIP2017模拟赛总结(2017.10.30-2017.11.1)
  15. 随手记_英语_学术写作_常用近义词区分
  16. 发现一个有趣的漫画网站
  17. 哥尼斯堡的“七桥问题” (25分)
  18. 怎么查服务器的操作系统是什么,怎么查服务器什么操作系统
  19. “大力丸”是壮阳药吗?
  20. EI检索的国际会议有这些

热门文章

  1. 安装cocoa pods时出现Operation not permitted - /usr/bin/xcodeproj的问题
  2. win10商店下载位置_Win10删应用商店下载记录|Win10删Microsoft Store下载记录
  3. jmeter+Fiddler:通过Fiddler抓包生成jmeter脚本
  4. linux bjobs
  5. java基础之线程(1)
  6. 性能监控工具javamelody与spring的集成
  7. BZOJ4503 两个串 【fft】
  8. LeetCode | HouseCode 算法题
  9. 系统权限管理设计 (转)
  10. shell脚本判断文件类型