【数据结构二叉树OJ系列】2、单值二叉树

news2024/9/25 23:19:50

 

目录

题述(力扣难度:简单):

思路: 

正确的代码: 


题述(力扣难度:简单)

如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的数树是单值二叉树,才返回 true;否则返回 false。

示例1:

 

输入:【1,1,1,1,1,NULL,1】

输出:true

题中已给:

struct TreeNode
{
    int val;
    struct TreeNode* left;
    struct TreeNode* right;
};

int isUnivalTree(struct TreeNode* root)

思路: 

当前树与左子树右子树比较,(左子树和右子树又可以分为当前树,左子树和右子树)直到遇到NULL,才会一层一层往回归注:空树应看做中值二叉树。

正确的代码: 

struct TreeNode
{
	int val;
	struct TreeNode* left;
	struct TreeNode* right;
};


bool isUnivalTree(struct TreeNode* root)
{
	if (root == NULL)
		return true;

	//判断当前树的值是否相等
	if (root->left && root->val != root->left->val)
	{//这里不相等就直接返回false,如果用判断相等再比较,后续就很麻烦了
     //root->left如果为NULL,left->val是不合法的
		return false;
	}
	if (root->right && root->val != root->right->val)
	{
		return false;
	}

    //当前树判断完毕,能来到这说明当前树的值都满足相等
	//当前树满足相等了,就再递归判断左右子树的值是否相等
	return isUnivalTree(root->left) && isUnivalTree(root->right);
}

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

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

相关文章

macOS Sonoma 14beta 3(23A5286g)发布(附黑/白苹果镜像地址)

系统镜像下载:百度:黑果魏叔 系统介绍 黑果魏叔 7 月 6 日消息,苹果今日向 Mac 电脑用户推送了 macOS 14 开发者预览版 Beta 3 更新(内部版本号:23A5286g),本次更新距离上次发布隔了 14 天。 小…

进程通信 软中断 signal()解读

目录 进程通信概述 软中断通信 signal() 概述 signal()类似的函数 signal()之SIGINT signal()之SIGTERM signal()之SIGALRM signal()之SIGQUIT SIG_IGN使用 进程通信概述 进程通信是指进程之间的信息交换。 通信的主要方式 在操作系统中,进程之间需要…

EtherCAT转TCP/IP网关ethercat最大通讯距离

天啊!你们听说了吗?数据互联互通问题终于迎来了突破性进展!作为生产管理系统的关键部分,数据互联互通一直是个大问题。然而,ETHERCAT和TCP/IP是两个不同的协议,它们之间的通讯一直是个大 问题。但是&#x…

Vue--》Vue3打造可扩展的项目管理系统后台的完整指南(十)

今天开始使用 vue3 ts 搭建一个项目管理的后台,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行&…

【Linux之拿捏信号1】什么是信号以及信号的产生

文章目录 生活角度的信号技术应用角度的信号系统中的信号信号函数signal调用系统函数向进程发信号由软件条件产生信号由硬件异常产生信号总结 生活角度的信号 在我们的生活中,什么可以被称为信号呢? 那可太多啦,有红绿灯,闹钟&…

通过NFS与Windows共享文件

通过NFS与Windows共享文件 1. 连接同一wifi网络 将开发板子连接至和PC同网络,并保证能互相ping通 2.启动Windows 端NFS Server 在电脑端启动NFS server(下载链接: https://www.hanewin.net/nfs-e.htm ) 3. 双击nfssrv-64.exe…

轻创数字人集团一文论述如何助力中小型企业数字化转型 ?

随着互联网技术的不断发展,人工智能已经成为了许多企业数字化转型的重要工具。然而,在人工智能领域中,不乏一些大型公司在研发和应用方面占据着主导地位。例如,以基础技术和软硬件设施为主的上游层,以英伟达、Meta、Ep…

基于 DDR3 的native接口串口传图帧缓存系统设计实现(整体设计)

文章目录 前言一、串口传图顶层系统设计框图二、各模块说明三、uart_ddr3_native_tft四、 uart_ddr3_native_tft仿真模块五、fifo_ddr3_native_fifo 模块六、fifo_ddr3_native_fifo 仿真模块七、传图展示 前言 结合串口接收模块和 tft 显示屏控制模块,设计一个基于…

sklearn房价预测(随机森林)

文章目录 一、前言二、实现方法一、前言 任务目标:根据统计在csv中的房屋属性相关数据,预测房屋最终成交价格数据集:《住宅属性数据集》,自取https://download.csdn.net/download/weixin_43721000/87785277数据集字段解释: 这个文件中有字段详细说明↓ 二、实现方法 # pi…

ARM_key1按键按下,打印key1

include/key.h #ifndef __KEY_H__ #define __KEY_H__#include "stm32mp1xx_exti.h" #include "stm32mp1xx_gic.h" #include "stm32mp1xx_rcc.h" #include "stm32mp1xx_gpio.h"//对RCC/GPIO/EXTI进行初始化 void hal_key1_exit_init()…

路径规划算法:基于类电磁机制优化的路径规划算法- 附代码

路径规划算法:基于类电磁机制优化的路径规划算法- 附代码 文章目录 路径规划算法:基于类电磁机制优化的路径规划算法- 附代码1.算法原理1.1 环境设定1.2 约束条件1.3 适应度函数 2.算法结果3.MATLAB代码4.参考文献 摘要:本文主要介绍利用智能…

面试交流会

面试交流 目录: 01:关于人生目标 02:关于心态 03:关于选择 04:关于学习 05:关于简历 06:关于找工作 1:关于人生目标 1.01、自己想成为什么样的人? 1.02、自己的人生目标是…

sqoop 详解

1 sqoop原理 1.1 sqoop介绍# Sqoop是Apache旗下的一款“hadoop和关系型数据库服务器之间传送数据”的工具。   导入数据:MySQL、Oracle导入数据到hadoop的hdfs、hive、hbase等数据存储系统。   导出数据:从hadoop的文件系统中导出数据到关系型数据…

Mysql数据库——表操作的练习

题目一 (1) mysql> create database Market; (2) mysql> use Market; Database changed mysql> create table customers(->c_num INT(11) primary key auto_increment,->c_name varchar(50),->c_contact varcha…

chatGPT之100个例子-从体验到精通

简介 本博文演示了100个chatGPT在各行各业的使用例子,全部看完有助于培养chatGPT解决问题的思维。 在人工智能时代,智能软件并不会淘汰人类,淘汰人类的是会使用人工智能的人! 我们直接使用openAI官方chatGPT,生动演示了chatGPT的一些妙用! 请仔细看完,一定会有收获! 每…

Python 之 基本概述

这里写目录标题 一、Python 简介1. 历史背景2. 特点3. 优缺点4. 应用领域 二、Python 解释器1. 解释器是什么?2. 解释器的构成及其各部分功能3. 解释器的执行过程 三、Python 环境安装四、第一个 Python 程序1. 实际操作2. 常见问题 五、Python 开发环境 一、Python…

Ubuntu 22.04.2 LTS 安装搜狗输入法后,修改区域格式Regional Format crash 崩溃 ,改用bash 指令修改

故障 系统已经升级到最新 基于Ubuntu 20.04 LTS apt upgrade升级而来。 yeqiangyeqiang-MS-7B23:~$ cat /etc/os-release PRETTY_NAME"Ubuntu 22.04.2 LTS" NAME"Ubuntu" VERSION_ID"22.04" VERSION"22.04.2 LTS (Jammy Jellyfish)"…

【LangChain】Document篇

概述 这些是处理文档的核心链。它们对于总结文档、回答文档问题、从文档中提取信息等很有用。 这些链都实现了一个通用接口: class BaseCombineDocumentsChain(Chain, ABC):"""Base interface for chains combining documents."""a…

Vue:Elemenu-Plus递归型菜单组件封装

前端开发中,经常遇到需要与后端配置,前端动态渲染菜单的应用场景,而究其本质,就是菜单组件的应用,只是在不确定菜单级数的情况下,我们需要对组件做一个递归处理,让它能够适应大多数应用场景。 递…

9.17UEC++代码段、编码和字符串

1. 编码定义: 自行转码: 字符串: FName:名称,访问快,用FName做键值。(键值容器)资产名称基本都是FName。 FText:一般是和UI有关,专门对接UI,也是…