LeetCode 100. 相同的树(二叉树遍历)
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. 相同的树(二叉树遍历)相关推荐
- 37. Leetcode 100. 相同的树 (二叉树-二叉树性质)
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同.如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的.示例 1:输入:p = [1,2,3], q = [1,2, ...
- 四 . LeetCode标签刷题——树/二叉树(一) 算法部分
各种二叉树的介绍汇总: 二叉树:最多有两棵子树的树被称为二叉树 满二叉树:二叉树中所有非叶子结点的度都是2,且叶子结点都在同一层次上 完全二叉树:如果一个二叉树与满二叉树前m个节点的结构相同,这样的二 ...
- LeetCode 100相同的树101对称二叉树
微信搜一搜:bigsai 大家都在关注的刷题.学习数据结构和算法宝藏项目 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: (https://bigsai.blog.csdn.net/articl ...
- Leetcode 100.相同的树
Time: 20190901 题目描述 给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1/ \ / \2 ...
- Leetcode 100. 相同的树 (每日一题 20210811)
给你两棵二叉树的根节点 p 和 q ,编写一个函数来检验这两棵树是否相同.如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的.示例 1:输入:p = [1,2,3], q = [1,2, ...
- LeetCode 100.相同的树(C++)
给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1/ \ / \2 3 2 3[1,2,3], [1,2, ...
- LeetCode 100. 相同的树 思考分析
给定两个二叉树,编写一个函数来检验它们是否相同. 如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的. 示例 1: 输入: 1 1 / \ / 2 3 2 3 [1,2,3], [1,2 ...
- LeetCode 310. 最小高度树(广度优先遍历)
题目描述 对于一个具有树特征的无向图,我们可选择任何一个节点作为根.图因此可以成为树,在所有可能的树中,具有最小高度的树被称为最小高度树.给出这样的一个图,写出一个函数找到所有的最小高度树并返回他们的 ...
- Leetcode 100. 相同的树 解题思路及C++实现
解题思路: 这道题利用递归的方法. 先对当前的节点p和q进行非null判断,如果均为null,则返回true: 如果一个为null,另一个非null,则返回false: p q均为非null,则比较它 ...
最新文章
- 用java写一个折半查找_用Java写一个折半查找。
- .net framework 4.0环境下遇到版本不同编译不通过的解决办法
- linux部署Nexus OSS
- hiveserver或者hive启动出现Expected authority at index 7问题解决
- printf函数源码linux,再来一版简易的printf函数实现
- Java线程类的继承结构
- Redis在windows下安装说明
- hbase 安装_如何搭建一个HBase集群
- 对Java回调函数的理解
- python读取、保存npy文件
- php开发App接口
- 那些好玩的生成器网站
- 室内定位技术之UWB篇
- NOIP2017模拟赛总结(2017.10.30-2017.11.1)
- 随手记_英语_学术写作_常用近义词区分
- 发现一个有趣的漫画网站
- 哥尼斯堡的“七桥问题” (25分)
- 怎么查服务器的操作系统是什么,怎么查服务器什么操作系统
- “大力丸”是壮阳药吗?
- EI检索的国际会议有这些
热门文章
- 安装cocoa pods时出现Operation not permitted - /usr/bin/xcodeproj的问题
- win10商店下载位置_Win10删应用商店下载记录|Win10删Microsoft Store下载记录
- jmeter+Fiddler:通过Fiddler抓包生成jmeter脚本
- linux bjobs
- java基础之线程(1)
- 性能监控工具javamelody与spring的集成
- BZOJ4503 两个串 【fft】
- LeetCode | HouseCode 算法题
- 系统权限管理设计 (转)
- shell脚本判断文件类型