LeetCode-热题100:101. 对称二叉树

news2024/11/25 0:33:06

题目描述

给你一个二叉树的根节点 root , 检查它是否轴对称。

示例 1:

在这里插入图片描述

输入: root = [1,2,2,3,4,4,3]
输出: true

示例 2:

在这里插入图片描述

输入: root = [1,2,2,null,3,null,3]
输出: false

提示:

  • 树中节点数目在范围 [1, 1000] 内
  • -100 <= Node.val <= 100

代码及注释

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */

func isSymmetric(root *TreeNode) bool {
    // 调用 check 函数,同时传入根节点的左右子树
    return check(root, root)
}

func check(left, right *TreeNode) bool {
    // 如果左右子树都为空,则返回 true
    if left == nil && right == nil {
        return true
    }

    // 如果左右子树只有一个为空,则返回 false
    if left == nil || right == nil {
        return false
    }

    // 比较当前节点的值,并递归比较左子树的左节点与右子树的右节点,左子树的右节点与右子树的左节点
    return left.Val == right.Val && check(left.Right, right.Left) && check(left.Left, right.Right)
}

代码解释

  1. 调用 isSymmetric 函数:该函数调用 check 函数,并传入根节点的左右子树作为参数。

  2. 递归检查对称性

    • 如果左右子树都为空,则它们是对称的,返回 true
    • 如果左右子树只有一个为空,则它们不是对称的,返回 false
    • 否则,比较左右子树的当前节点的值,并递归地检查左子树的左节点与右子树的右节点,以及左子树的右节点与右子树的左节点是否对称。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1604890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【UE 材质】表面湿润效果

效果 步骤 1. 创建一个材质函数&#xff0c;这里命名为“MF_Weather_Wetness”&#xff0c;打开材质函数添加如下节点 其中输入的默认值分别为&#xff1a; 其中&#xff0c;“Desaturation”节点用于控制饱和度&#xff0c;我们通过给“Fraction”引脚输入一个负值来增加饱和…

个人可以做视频号小店吗?当然可以,但我建议这么做

大家好&#xff0c;我是电商笨笨熊 视频号小店在推出之后就吸引了不少的玩家&#xff0c; 这其中有很多之前做过电商的老玩家&#xff0c;甚至是团队&#xff0c;也有很多是一个人&#xff0c;刚开始做电商的新手小白。 对于电商老玩家来说&#xff0c;做过的可能会更容易上…

正交实验设计及数据处理

文章目录 一、正交实验基础知识介绍1.1 认识正交表1.2 正交表的特点1.3 正交表的分类 二、数据分析 本次内容参考自高等教育本科教材《实验设计与数据处理》 一、正交实验基础知识介绍 1.1 认识正交表 先看一组正交表的构造 这个表的题头代表了这个表的构造&#xff0c;其中…

DRAM发展史

DRAM(Dynamic Random Access Memory,动态随机存取存储器)自其发明以来,历经半个多世纪的发展,已成为现代计算机系统中不可或缺的关键组件。 诞生与早期发展 1966年:IBM公司的罗伯特登纳德(Robert H. Dennard)发明了DRAM。这种新型存储器利用一个晶体管和一个电容器组…

为什么Linus不把国家反诈中心加入Linux内核?

所谓的反诈和反诈 app 都是应用层面的事儿吧。这些东西如果真要集成&#xff0c;也是集成到浏览器中&#xff08;监视你访问的内容和浏览记录&#xff09;&#xff0c;拨号和短信应用中&#xff08;监视通话和短信&#xff09;。还有微信之类的早就集成反诈了。如果你反复向一个…

Web3技术简介:重新定义互联网的未来

引言 在21世纪的数字时代&#xff0c;互联网已成为我们日常生活的不可或缺的一部分。然而&#xff0c;随着区块链和加密技术的快速发展&#xff0c;一个全新的互联网模型——Web3&#xff0c;正逐渐崭露头角。Web3不仅仅是技术的进步&#xff0c;它更是对传统互联网模型的挑战…

亚马逊测评自养号策略:手机与PC结合的重要性

亚马逊测评的核心关键技术在于精心培养买家账号&#xff0c;之所以称之为核心关键&#xff0c;原因在于测评下单的首要条件是拥有一个活跃的买家账号。买家账号并非一次性使用&#xff0c;因此&#xff0c;养号过程显得至关重要。然而&#xff0c;在养号的过程中&#xff0c;很…

sklearn中决策树算法实例--泰坦尼克号人员生存预测

目录 数据集 题目 算法步骤 数据集 下载地址 titanic.csv Yuyi Ye/ML-Decision-Tree - 码云 - 开源中国 (gitee.com) 题目 根据数据集中的数据&#xff0c;预测哪些乘客可以从泰坦尼克号沉船事故中幸免。 算法步骤 import pandas as pd import numpy as np from skle…

AI预测福彩3D第39弹【2024年4月18日预测--第8套算法开始计算第7次测试】

今天咱们继续测试第8套算法和模型&#xff0c;今天是第7次测试&#xff0c;目前的测试只是为了记录和验证&#xff0c;为后续的模型修改和参数调整做铺垫&#xff0c;所以暂时不建议大家盲目跟买~废话不多说了&#xff0c;直接上结果&#xff01; 2024年4月18日3D的七码预测结果…

win7录屏功能在哪里?这篇文章告诉你答案

Windows 7作为微软公司推出的一款经典操作系统&#xff0c;虽然目前已经逐渐退出主流市场&#xff0c;但依然有许多用户对其情有独钟。在日常使用中&#xff0c;录屏功能是一个非常重要的工具&#xff0c;可以帮助我们记录下电脑屏幕上的操作过程&#xff0c;便于分享、教学或制…

从小到大输出四个整数(C语言)

一、N-S流程图&#xff1b; 二、运行结果&#xff1b; 三、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h>int main() {//初始化变量值&#xff1b;int a, b, c, d;int t 0;//提示用户&#xff1b;printf("请输入四个整数a b c d&…

jenkins 部署 vue 项目

jenkins 部署 vue 项目 环境 系统&#xff1a;CentOS7.9 Jenkins&#xff1a;最新LTS版本 nginx: 1.24.x gitLab: 打包机&#xff1a;jenkins所在服务器 目标机器&#xff1a;nginx所在服务器 jenkins部署配置 关键脚本 #node -v #已经安装node_module就无需执行install安…

cesium 解决带高度的polygon 材质不能透明的问题

问题描述&#xff1a;创建一个带高度的polygon&#xff0c;用一个带透明度的图片做材质&#xff0c;画出来的多边形没有透明效果&#xff0c;图片的透明通道没有用上。 一、创建不带高度polygon 不带高度的polygon&#xff0c;使用带透明度的图片是有效果的&#xff0c;但是不…

2010年认证杯SPSSPRO杯数学建模A题(第一阶段)聪明的汽车全过程文档及程序

2010年认证杯SPSSPRO杯数学建模 A题 聪明的汽车 原题再现&#xff1a; 在狭窄的空间里把车停放在合适的位置&#xff0c;或在短小的停车位上侧位停车&#xff0c;一直是考验驾驶员技术与信心的问题。有调查报告称&#xff1a;57% 的驾驶员对自己的停车技术缺乏自信&#xff0…

【C++核心】面向对象的三大特性

面向对象的三大特性 一、封装性1. 封装性的意义1.1 表现事物1.2 权限控制1.3 成员属性设置为私有 2. 封装性的衍生知识2.1 struct和class区别2.2 友元2.2.1 全局函数做友元2.2.2 类做友元2.2.3 成员函数做友元 二、继承性1. 继承的语法2. 继承方式3. 继承中的对象模型3.1 说明3…

良友:献上今天(打开心窗说亮话)- 情绪的秘密

目录 一 二 三 四 五 六 七 八 九 十 十一 十二 十三

python中的列表、元组、字典、集合(集合篇)

数据类型定义符号访问元素是否可变是否重复是否有序列表 [ ]索引可变可重复有序元组&#xff08;&#xff09;索引不可变可重复有序字典{key&#xff1a;value}键可变可重复无序集合{ }可变不可重复无序 基本概念 python语言中的集合是无序的、可变的容器类对象&#xff0c;所…

名称和命名空间

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d8;相关专栏Rust初阶教程、go语言基础系列、spring教程等&#xff0c;大家有兴趣的可以看一看 &#x1f4d9;Jav…

【微信小程序从入门到精通(项目实战)】——微电影小程序

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…