力扣100. 相同的树(利用分解思想解决)

Problem: 100. 相同的树

文章目录

题目描述

思路

题目要求判断两个二叉树是否完全相同 ,而此要求可以利用问题分解 的思想解决,即判断当前节点的左右子树是否完全相同 ,而在二叉树问题分解 的一般题目中均会带有返回值,具体的此题中当p、q指针均为null时返回true,当其中一个为null时(不是同时为null)返回false,当p、q指针指向的节点值不相同时返回false。

时间复杂度:

O ( n ) O(n) O(n);其中 n n n为二叉树的节点个数

空间复杂度:

O ( h ) O(h) O(h);其中 h h h为二叉树的高度

Code

java 复制代码
class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        if (p == null && q == null) {
            return true;
        }
        if (p == null || q == null) {
            return false;
        }
        if (p.val != q.val) {
            return false;
        }
        //Check whether the left and right subtrees are the same
        return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
    }
}
相关推荐
不枯石37 分钟前
Matlab通过GUI实现点云的均值滤波(附最简版)
开发语言·图像处理·算法·计算机视觉·matlab·均值算法
不枯石1 小时前
Matlab通过GUI实现点云的双边(Bilateral)滤波(附最简版)
开发语言·图像处理·算法·计算机视觉·matlab
白水先森3 小时前
C语言作用域与数组详解
java·数据结构·算法
想唱rap3 小时前
直接选择排序、堆排序、冒泡排序
c语言·数据结构·笔记·算法·新浪微博
老葱头蒸鸡4 小时前
(27)APS.NET Core8.0 堆栈原理通俗理解
算法
视睿4 小时前
【C++练习】06.输出100以内的所有素数
开发语言·c++·算法·机器人·无人机
柠檬07115 小时前
matlab cell 数据转换及记录
算法
YuTaoShao5 小时前
【LeetCode 每日一题】2221. 数组的三角和
数据结构·算法·leetcode
little~钰6 小时前
树上倍增和LCA算法---上
算法
力扣蓝精灵6 小时前
今日分享 整数二分
算法