首页 > 其他分享 >闯关leetcode——100. Same Tree

闯关leetcode——100. Same Tree

时间:2024-10-14 18:17:46浏览次数:7  
标签:right TreeNode val Tree nullptr false 100 leetcode left

大纲

题目

地址

https://leetcode.com/problems/same-tree/description/

内容

Given the roots of two binary trees p and q, write a function to check if they are the same or not.

Two binary trees are considered the same if they are structurally identical, and the nodes have the same value.

Example 1:

Input: p = [1,2,3], q = [1,2,3]
Output: true
在这里插入图片描述

Example 2:

Input: p = [1,2], q = [1,null,2]
Output: false
在这里插入图片描述

Example 3:

Input: p = [1,2,1], q = [1,1,2]
Output: false
在这里插入图片描述

Constraints:

  • The number of nodes in both trees is in the range [0, 100].
  • -104 <= Node.val <= 104

解题

这题就是要比较两个二叉树中节点数值以及结构是否一致。需要注意的是,不能通过判断两个节点的数值一致而返回true,而是要更多考虑不一致的情况,比如左右节点结构是否一致以及数值是否一致。能够完全确认两个节点相同的就是它们都是nullptr,即都遍历到最后一级,且之前都没遇到返回false的情况。

#include <vector>
using namespace std;

struct TreeNode {
    int val;
    TreeNode *left;
    TreeNode *right;
    TreeNode() : val(0), left(nullptr), right(nullptr) {}
    TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
    TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
};

class Solution {
public:
    bool isSameTree(TreeNode* p, TreeNode* q) {
        if (p == nullptr && q == nullptr) return true;
        if (p == nullptr || q == nullptr) return false;
        if (p->val != q->val) return false;
        return isSameTree(p->left, q->left) && isSameTree(p->right, q->right);
    }
};

在这里插入图片描述

代码地址

https://github.com/f304646673/leetcode/tree/main/100-Same-Tree

标签:right,TreeNode,val,Tree,nullptr,false,100,leetcode,left
From: https://blog.csdn.net/breaksoftware/article/details/142110988

相关文章

  • 设备连接100万+,数据并发20万点/秒!——万德高科通用物联网管理平台
    万德高科通用物联网管理平台 低成本便捷接入个性化灵活可拓 高效率部署数据终身升级售后无忧设备连接100万+数据并发20万点/秒设备延迟<30ms平台简介通用物联网管理平台是一款完善的物联网设备接入、管理和数据分析应用平台,提供多元异构设备的接入与管理、数据存储......
  • web开发工程师的100+个免费资源
    对于网页工程师来说,跟上不断发展的网页技术既重要又具有挑战性。这意味着作为网页开发者,你需要不断学习和适应。以下是作者在开发和学习过程中遇到的一些有价值的工具和资源,分享给大家:JavaScript库jQuery:最著名的JavaScript库。Backbone.js:为复杂的网页应用提供M......
  • 【python爬虫案例】利用python爬取B站TOP100热门排行榜附源码
    目录一、爬取目标-B站排行榜二、B站排行榜网站分析三、B站排行榜爬虫代码详解四、B站排行榜结果五、python爬虫源代码获取一、爬取目标-B站排行榜大家好,我是老王!今天给大家分享一期python爬虫案例,这次爬取的对象是:B站热门排行榜数据爬取的目标网址是:https://www.bil......
  • 【LeetCode Hot 100】31. 下一个排列
    https://leetcode.cn/problems/next-permutation/description/这里下个排列的意思是按字典序的排列,C++STL中算法默认也是按照字典序排列来操作。C++STL中提供了对应的接口next_permutation,下面记录一下力扣给的题解,这种方法允许数据重复,据说STL也是采用的这种方法。从后向前......
  • 2024.10.14 1005版
    起于《海奥华预言》的思考◆地球管理结构和参考持续更新中...... 英文地址:https://github.com/zhuyongzhe/Earth/tags中文地址:https://www.cnblogs.com/zhuyongzhe85作者:朱永哲 ---------------------------------------------------------------------------------......
  • BinaryTree
    二叉树树的基本概念树是一种非线性的数据结构n(n>0)个有限节点组成一个具有层次关系的集合像一颗倒挂的树根朝上叶朝下这里重要的是树中的几个概念结点的度:一个结点含有子树的个数比如上面的图A的度为6树的度:一颗树中,所有结点度的最大值成为树的度如上图......
  • 100基于java ssm springboot体检预约系统体检套餐报告体检论坛(源码+文档+运行视频+讲
    项目技术:Springboot+Maven+Vue等等组成,B/S模式+Maven管理等等。环境需要1.运行环境:最好是javajdk1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;3.tomcat环境:Tomcat7.x,8.x,9.x版本均可4.硬件环境:windows......
  • 带中位数写法的快速排序再讨论 & leetcode 215. Kth Largest Element in an Array题解
    带中位数写法的快速排序再讨论&leetcode215.KthLargestElementinanArray题解 探讨带中位数的写法本身classSolution{public:intfindKthLargest(std::vector<int>&nums,intk){returnfakeQuickSort(nums,k,0,nums.size()-1);}privat......
  • Leetcode 贪心算法之Largest Number
    题目描述给定一组非负整数nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。实例示例1:输入:nums=[10,2]输出:“210”示例2:输入:nums=[3,30,34,5,9]输出:“9534330”思路分析利用贪......
  • 【趣学C语言和数据结构100例】
    【趣学C语言和数据结构100例】问题描述找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无......