100. 相同的树

思路:

树用递归就对了。

相同的树定义是结点值相同,树的结构也相同。

有这么几种情况:

1. 结点都为null, 代表都是空结点,没问题。

2. 结点一个是null,一个不是null, 这种情况树的结构肯定是不同的。

3. 结点都为非空结点,这就要求结点值相同,然后递归的去比较左子树和右子树了。

 

代码:(这个代码看上去比较难懂,其实想一下就明白了,这个是idea优化过后的代码)

1 var isSameTree = function(p, q) {
2         if(p && q){
3             return p.val === q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
4         }else return !(p || q);
5     };

其实我想写的是下面这个,这个比较人类友好:

复制代码
1 var isSameTree = function(p, q) {
2         if(p && q){
3             return p.val === q.val && isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
4         }else if(p || q){
5             return false;
6         }else{
7             return true;
8         }
9     };
复制代码

 

posted @   BJFU-VTH  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示