树的练习1--------965单值二叉树

前言

终于度过期末周啦,我要尽快把我的节奏调整过来,留给我的时间不多啦,我的学习和生活模式需要大改变,我需要通过自己清晰的头脑,让环境顺于我去发展,或者说我可以改变思路,改变自己去适应这个环境

题目:点这里

解法

/** * Definition for a binary tree node. * 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 isUnivalTree(TreeNode* root) { if(root==nullptr){ return true; } if(root->left){ if(root->val!=root->left->val){ return false; } if(isUnivalTree(root->left)==false){ return false; } } if(root->right){ if(root->val!=root->right->val){ return false; } if(isUnivalTree(root->right)==false){ return false; } } return true; } };

这个解法的思路就是首先判断根节点是不是为空,为空则返回true,然后利用if语句判断根节点的左节点是否为空,不为空则首先判断根节点与左节点的值是否相等,不等则返回false,再将左节点传入下一层函数,若返回值为false,则也返回false,右节点同理,最终如果都不成立,就返回true。

我的错误解法

/** * Definition for a binary tree node. * 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 isUnivalTree(TreeNode* root) { if(root->left==nullptr||root->right==nullptr){ return true; } if(root->val!=root->left->val||root->val!=root->right->val){ return false; } else{ return isUnivalTree(root->left)==false||isUnivalTree(root->right)==false?false:true; } } };

我的错误在于没有对根节点和左右节点分开进行讨论,导致指针越界访问。

反思

看情况对左右节点分情况讨论;

为递归预留出口,也就是对根节点是否为空进行优先判断。

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

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

相关文章

如何用自然语言分割任意物体?sam3大模型镜像快速上手指南

如何用自然语言分割任意物体?sam3大模型镜像快速上手指南 在计算机视觉领域,图像分割一直是核心任务之一。传统方法依赖大量标注数据和特定场景训练,而随着大模型技术的发展,SAM3(Segment Anything Model 3&#xff0…

AI Agent 在汽车上的典型应用场景,研发入门

汽车领域,AI Agent 通常以 “多智能体协同” 的形式存在。从近两年开始,AI Agent 在汽车上正从单点功能升级为全链路场景化智能中枢。 系统总结了AI Agent 在汽车行业的应用,覆盖智能座舱、自动驾驶、车联网服务与车辆运维四大领域&#xff0…

PyTorch-2.x镜像让多版本CUDA切换变得异常简单

PyTorch-2.x镜像让多版本CUDA切换变得异常简单 1. 背景与痛点:深度学习环境配置的“地狱模式” 在深度学习开发过程中,环境配置往往是开发者面临的首要挑战。尤其是当项目依赖特定版本的PyTorch、CUDA和Python时,稍有不慎就会陷入“版本不兼…

YOLOv8视频分析实战:云端GPU处理4K视频不卡顿

YOLOv8视频分析实战:云端GPU处理4K视频不卡顿 你是不是也遇到过这样的情况?作为一名视频博主,手头有大量高清影视素材想做内容分析——比如统计某个角色出镜次数、识别画面中的物体变化、提取精彩片段。你想用当前最火的目标检测模型 YOLOv8…

TouchGFX入门必读:官方Demo分析解读

TouchGFX实战入门:从官方Demo看透嵌入式GUI的底层逻辑 你有没有遇到过这样的场景?项目需要做一个带动画、有触控反馈的彩色TFT界面,主控是STM32F4或H7系列,但团队里没人真正搞懂TouchGFX怎么用。网上搜一圈,不是零散的…

AI隐私卫士深度测评:打码效果/速度/价格全面对比

AI隐私卫士深度测评:打码效果/速度/价格全面对比 作为一名政务新媒体小编,你是否经常被这样的问题困扰:每次发布单位活动照片时,领导反复强调“群众隐私必须保护”,但又要求“画面要自然、不能影响传播效果”。于是你…

测试开机启动脚本Go语言微服务注册与发现机制

测试开机启动脚本Go语言微服务注册与发现机制 1. 引言:微服务架构下的服务治理挑战 在现代分布式系统中,微服务架构已成为构建高可用、可扩展应用的主流范式。随着服务数量的增长,如何实现服务的自动注册与发现成为关键问题。尤其是在容器化…

学长亲荐2026 TOP9 AI论文写作软件:专科生毕业论文全攻略

学长亲荐2026 TOP9 AI论文写作软件:专科生毕业论文全攻略 2026年AI论文写作软件测评:专科生毕业论文的高效助手 随着AI技术在学术领域的深入应用,越来越多的专科生开始借助AI工具提升论文写作效率。然而,面对市场上琳琅满目的论文…

会议记录助手:FSMN-VAD实现发言时段自动提取

会议记录助手:FSMN-VAD实现发言时段自动提取 1. 引言 1.1 业务场景与痛点分析 在日常工作中,会议录音的整理是一项耗时且重复性高的任务。传统方式需要人工逐段听取音频,手动标记每位发言人的讲话起止时间,并进行转录。这种方式…

Polars DataFrame中的复杂计算与Numba优化

在数据处理领域,Polars是一个高效且快速的数据框架,提供了诸如Pandas的类似功能,但性能更优。然而,当涉及到复杂的自定义函数计算时,Polars的处理方式可能不尽如人意,特别是当你需要在DataFrame中进行多列的计算并保留中间结果时。本文将探讨如何通过Numba优化和Polars的…

Azure DevOps中的用户管理:RBAC与AD组的完美结合

引言 在现代企业中,管理大量用户的权限和访问级别是一项复杂且繁琐的工作,特别是在像Azure DevOps这样的云平台上。通过Azure Active Directory(AD)与Azure DevOps的集成,我们可以使用基于角色的访问控制(RBAC)来简化用户管理。本文将详细介绍如何在Azure DevOps中使用…

python基于vue的高校学生党员管理系统django flask pycharm

目录高校学生党员管理系统摘要开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!高校学生党员管理系统摘要 该系统基于Python语言,采用Vue.js前端框架与Django/Flask后端框架开发&…

如何高效实现中文语音识别?科哥开发的FunASR镜像一键上手

如何高效实现中文语音识别?科哥开发的FunASR镜像一键上手 1. 背景与需求分析 随着人工智能技术的发展,语音识别在智能客服、会议记录、视频字幕生成等场景中发挥着越来越重要的作用。尤其是在中文语音处理领域,高准确率、低延迟的自动语音识…

如何实现进度提示?Super Resolution异步响应开发指南

如何实现进度提示?Super Resolution异步响应开发指南 1. 引言 1.1 业务场景描述 在图像处理类AI应用中,用户上传低分辨率图片后,系统需要执行耗时的超分辨率重建任务。以基于OpenCV EDSR模型的Super Resolution服务为例,3倍放大…

Live Avatar实时推理瓶颈:为何24GB显卡难以支持14B模型

Live Avatar实时推理瓶颈:为何24GB显卡难以支持14B模型 1. 背景与问题定义 Live Avatar是由阿里巴巴联合多所高校开源的高保真数字人生成模型,基于14B参数规模的DiT(Diffusion Transformer)架构,能够实现从音频驱动到…

python基于vue的高校学生实习综合服务平台设计与实现django flask pycharm

目录高校学生实习综合服务平台设计与实现摘要开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!高校学生实习综合服务平台设计与实现摘要 该平台基于Python技术栈(Django/Flask&am…

WinUI3中的AppBarButton连接状态管理

在使用WinUI3进行界面设计时,通常需要处理用户与应用程序的交互,其中包括显示连接状态的功能。今天,我们将探讨如何使用AppBarButton来显示设备的连接状态,并解决在设置Icon属性时可能会遇到的错误。 背景介绍 在WinUI3中,AppBarButton是一个常用的控件,用于表示操作或…

STM32环境下ModbusSlave数据交互系统学习路径

从零构建STM32上的Modbus从站:一个嵌入式工程师的实战指南 你有没有遇到过这样的场景? 现场一台温控仪表需要接入PLC系统,但接口协议写的是“支持Modbus RTU”;或者你自己设计的智能采集板,客户拿着HMI来联调&#x…

用Z-Image-Turbo做了个AI画展,全流程实录分享

用Z-Image-Turbo做了个AI画展,全流程实录分享 在AI生成图像技术日益普及的今天,如何快速、稳定地部署一个高质量文生图系统,成为内容创作者、设计师和开发者关注的核心问题。最近,我使用阿里通义实验室开源的 Z-Image-Turbo 模型&…

解密SQL中的时间计算:以开发请求为例

在企业内部,IT部门通常需要处理来自各个业务单位的开发请求。这些请求会在系统中经历多个阶段,每个阶段都有其特定的流程和时间要求。本文将详细介绍如何使用SQL查询来计算和分析这些请求的处理时间,并以一个实际案例为例。 案例背景 假设我们有一个系统,用于跟踪和管理从…