当前位置: 首页 > article >正文

LeetCode 二叉树高频双题绝杀!第 k 小元素 + 右视图,小白一遍学会

目录前言第一题二叉搜索树中第 K 小的元素 题目要求 小白秒懂核心思路✅ 完整解题代码 通俗代码解析第二题二叉树的右视图 题目要求 小白秒懂核心思路✅ 完整解题代码 通俗代码解析 两道题终极口诀秒记二叉搜索树第 k 小元素二叉树右视图总结前言二叉树刷题不用死记硬背今天这两道题是大厂笔试面试高频原题一个靠中序遍历秒杀一个靠层序遍历通关代码极简、思路直白看完直接能默写新手也能轻松拿捏第一题二叉搜索树中第 K 小的元素 题目要求给定一个二叉搜索树找出其中第 k 小的元素。注意你可以假设 k 总是有效的1 ≤ k ≤ 二叉搜索树元素个数。 小白秒懂核心思路二叉搜索树有一个黄金定律中序遍历左→根→右的结果 严格升序数组所以解题超级简单对树做中序遍历把节点值按从小到大收集第 k 小的元素 集合中下标为 k-1的元素一步到位无任何复杂逻辑✅ 完整解题代码java运行/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val val; * this.left left; * this.right right; * } * } */ class Solution { // 集合收集中序遍历结果升序排列 ListInteger listnew ArrayList(); public int kthSmallest(TreeNode root, int k) { // 中序遍历从小到大收集所有元素 travle(root); // 返回第k小的元素下标k-1 return list.get(k-1); } // 中序遍历左子树 - 根节点 - 右子树 public void travle(TreeNode root){ if(rootnull) return; // 遍历左子树 travle(root.left); // 加入当前节点 list.add(root.val); // 遍历右子树 travle(root.right); } } 通俗代码解析中序遍历二叉搜索树自动得到升序序列把所有节点值存进集合直接通过下标获取第 k 小元素代码短短几行逻辑一目了然面试写这个最快最稳第二题二叉树的右视图 题目要求给定一个二叉树想象你站在它右侧从上到下返回你能看到的节点值。 小白秒懂核心思路右视图 每一层最右边的节点用层序遍历BFS完美解决按层遍历二叉树一层一层处理每一层只保留最后一个节点的值收集所有层的最后节点就是右视图结果✅ 完整解题代码java运行/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val val; } * TreeNode(int val, TreeNode left, TreeNode right) { * this.val val; * this.left left; * this.right right; * } * } */ class Solution { public ListInteger rightSideView(TreeNode root) { // 存储最终右视图结果 ListInteger resultnew ArrayList(); // 队列实现层序遍历 QueueTreeNode quenew LinkedList(); // 空树直接返回 if(rootnull) return result; // 根节点入队 que.offer(root); // 开始层序遍历 while(!que.isEmpty()){ // 记录当前层的节点个数 int sizeque.size(); // 遍历当前层所有节点 for(int i0;isize;i){ TreeNode nodeque.poll(); // 只加入每层最后一个元素右视图 if(isize-1){ result.add(node.val); } // 左节点入队 if(node.left!null){ que.offer(node.left); } // 右节点入队 if(node.right!null){ que.offer(node.right); } } } return result; } } 通俗代码解析用队列实现层序遍历一层一层处理节点用size记录当前层的节点数量遍历当前层时只有最后一个节点加入结果集最终得到的就是二叉树的右视图简单粗暴零出错 两道题终极口诀秒记二叉搜索树第 k 小元素中序遍历升序排第 k 小值下标 k-1二叉树右视图层序遍历按层走每层最后都收入总结这两道题是二叉树刷题的基础必做题一个考察中序遍历一个考察层序遍历都是二叉树最核心的遍历方式代码简洁、思路清晰学会这两道二叉树遍历题型直接拿下一半刷算法效率拉满

相关文章:

LeetCode 二叉树高频双题绝杀!第 k 小元素 + 右视图,小白一遍学会

目录 前言 第一题:二叉搜索树中第 K 小的元素 🎯 题目要求 💡 小白秒懂核心思路 ✅ 完整解题代码 📝 通俗代码解析 第二题:二叉树的右视图 🎯 题目要求 💡 小白秒懂核心思路 ✅ 完整解…...

如何从视频中高效提取幻灯片:智能工具应用指南

如何从视频中高效提取幻灯片:智能工具应用指南 【免费下载链接】extract-video-ppt extract the ppt in the video 项目地址: https://gitcode.com/gh_mirrors/ex/extract-video-ppt 你是否曾遇到这样的困扰:参加线上会议后想整理演示文稿&#x…...

短视频 SEO 优化对于新手有什么建议_如何分析短视频的 SEO 效果

短视频 SEO 优化对于新手有什么建议 在当今数字化时代,短视频平台已经成为了人们获取信息和娱乐的重要途径。无论是抖音、快手,还是TikTok,短视频内容的迅速增长引发了广大创作者对SEO(搜索引擎优化)的关注。对于新手…...

贾子 Kucius 的证伪主义批判与学术评价体系重构:文明持续运行的新范式

贾子 Kucius 的证伪主义批判与学术评价体系重构:文明持续运行的新范式摘要 贾子 Kucius 系统批判了波普尔证伪主义作为西方中心论话语霸权的“证死你,证伟我”双标本质,揭示其逻辑悖论与认知殖民机制。他提出以“文明持续运行能力”替代“可证…...

使用 SEO 搜索引擎营销工具需要多长时间见效

SEO 搜索引擎营销工具需要多长时间见效 随着互联网的普及和数字营销的迅速发展,越来越多的企业开始重视SEO(搜索引擎优化)工具的使用。SEO工具不仅能帮助企业提升网站在搜索引擎中的排名,还能带来更多的流量和潜在客户。许多人在…...

国内大模型托管平台推荐:四大平台选型指南

随着大模型技术加速落地,模型托管平台已成为开发者不可或缺的基础设施。本文梳理了2025年国内主流的四大大模型托管平台,从核心优势、适用场景到选型建议,为你提供一份实用的选型指南。一、模力方舟:国产开源生态的“基石”推荐指…...

从‘滋滋’声到过认证:一个Buck电源的EMI实战整改笔记(附PCB布局优化技巧)

从‘滋滋’声到过认证:一个Buck电源的EMI实战整改笔记(附PCB布局优化技巧) 1. 问题浮现:EMI测试中的异常现象 那是一个周五的下午,实验室的EMI测试仪屏幕上跳动的红色曲线格外刺眼。我们团队开发的IoT设备在CE认证测试…...

齿轮基础参数

基于传统势能法含裂纹斜齿轮时变啮合刚度(裂纹斜齿轮),代码保证运行无问题,出图效果如页面简介齿轮传动系统里最怕遇到啥?裂纹呗!尤其是斜齿轮这种接触线斜着走的家伙,一旦出现裂纹整个时变刚度曲线直接抽风…...

三菱FX5U ModbusTCP从站配置避坑指南:从IP冲突到通讯成功的完整流程

三菱FX5U ModbusTCP从站配置避坑指南:从IP冲突到通讯成功的完整流程 工业自动化领域中,ModbusTCP通讯协议因其简单高效的特点,成为PLC与上位机交互的常用方式。三菱FX5U系列PLC作为一款高性价比的可编程控制器,在中小型自动化项目…...

中航迈特光束整形金属3D打印技术取得重要进展,多种材料已成功验证

中航迈特在金属3D打印装备研发方面持续发力,尤其是光束整形技术近期取得重要进展。在本届TCT亚洲展,它推出的MT280搭载了无级点环光斑能量智调系统,是光束整形金属3D打印当前较新的看点。据3D打印技术参考了解,无级点环光斑能量智…...

CSDN首页发布文章意见反馈

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

如何利用爬虫技术快速精准地抓取目标数据?

1. 爬虫策略:从"无脑抓"到"精准狙击" 我刚入行时犯过一个典型错误——用单线程脚本无差别抓取整站数据,结果不仅触发反爬机制被封IP,还浪费三天时间清洗90%的无用数据。现在回头看,合理的爬虫策略就像狙击手…...

并联型有源电力滤波器APF的三相三线制模型及其Simulink仿真研究——基于瞬时无功功率理论...

并联型有源电力滤波器APF三相三线模型都包括,simulink仿真利用基于瞬时无功功率理论的ip-iq谐波检测算法,对三相三线制并联型APF控制系统进行建模与Matlab仿真最近在搞三相三线制并联型APF的仿真,发现基于ip-iq谐波检测的方案确实挺有意思。这…...

Three.js实战:打造交互式3D中国地图可视化

1. 从零开始搭建3D中国地图 第一次接触Three.js时,我被它强大的3D渲染能力震撼到了。作为一个长期从事数据可视化的开发者,我一直在寻找能够将地理数据以更生动方式呈现的工具。Three.js配合D3.js的组合,完美解决了这个问题。 1.1 数据准备与…...

水产养殖自动控制系统:远程操控,鱼塘24小时在线守护

在我国水产养殖产业快速发展的今天,“产量高、品质优、成本低、更环保”已成为养殖从业者的核心追求。但传统养殖模式中,人工巡检效率低、水质调控凭经验、投喂施肥不精准等问题,不仅增加了劳动强度,还易导致养殖生物应激、病害频…...

实战指南:用Python的pyttsx3库打造你的专属语音助手

1. 从零认识pyttsx3:你的代码会说话 第一次听到电脑用标准播音腔朗读出我写的文字时,那种感觉就像小时候收到会说话的生日贺卡。pyttsx3这个神奇的Python库,能让任何文本通过声卡变成人声。不同于需要联网的语音合成服务,它完全离…...

OpenClaw学习助手:Qwen3.5-9B自动整理学术PDF笔记

OpenClaw学习助手:Qwen3.5-9B自动整理学术PDF笔记 1. 为什么需要自动化文献整理 作为一名每天需要阅读大量文献的研究者,我长期被两个问题困扰:一是PDF里的关键信息需要手动复制粘贴到笔记软件,二是不同文献的结论难以横向对比。…...

Windows下IDEA远程开发全离线配置指南(含JetBrainsClient避坑)

Windows下IDEA远程开发全离线配置实战指南 最近在给某金融机构做内部开发环境迁移时,遇到了一个棘手问题:他们的生产网络完全隔离外网,但开发团队又急需使用IDEA的远程开发功能。经过两周的反复试验,终于摸索出一套完整的离线配置…...

Go语言的网络编程:从TCP到WebSocket

Go语言的网络编程:从TCP到WebSocket 网络编程的重要性 在现代软件开发中,网络编程是一项基本技能。通过网络编程,我们可以: 构建客户端-服务器应用程序实现分布式系统开发 Web 应用和 API实现实时通信功能与其他服务进行集成 Go 语…...

Edge/Chrome用户必看:3种免费工具批量清理失效书签(2023实测)

Edge/Chrome用户必备:2023年高效清理失效书签的3种解决方案 每次打开浏览器,看到密密麻麻的书签栏却找不到真正可用的链接?这可能是大多数互联网用户的日常困扰。根据2023年用户调研数据显示,平均每位浏览器用户拥有超过200个书签…...

Go语言的项目结构:从单体到微服务

Go语言的项目结构:从单体到微服务 项目结构的重要性 在软件开发中,项目结构是影响代码质量和可维护性的关键因素。一个良好的项目结构可以: 提高代码的可读性和可维护性促进团队协作和代码共享便于测试和部署支持代码的重用和扩展降低项目…...

MATLAB 2012b许可证过期怎么办?两种实测有效的解决方法(附License文件下载)

MATLAB 2012b许可证过期的实战修复指南 当你在某个深夜赶论文时,突然发现MATLAB 2012b弹出"License Manager Error -96"的红色警告框,那种感觉就像赛车手在决赛圈突然没油。作为一款已经服役超过十年的经典版本,MATLAB 2012b至今仍…...

别只盯着huggingface!用Modelscope一键搞定PDFMathTranslate的DocLayout-YOLO模型依赖

国内开发者的福音:用ModelScope优雅解决PDFMathTranslate模型依赖问题 遇到LocalEntryNotFoundError报错时,大多数开发者第一反应是检查网络连接或寻找Hugging Face镜像源。但鲜为人知的是,PDFMathTranslate源码中其实隐藏着一个更优雅的解决…...

Pandas中groupby+agg的两种写法区别小结

在使用 Pandas 做数据统计时,groupby agg 是绕不开的操作。但很多人(包括我自己)在实际项目中都会遇到一个问题:为什么明明只是做个统计,结果 DataFrame 却变成了 MultiIndex, 后面 merge、导 Excel、画图…...

高德地图JS API报错10009?手把手教你解决USERKEY_PLAT_NOMATCH问题

高德地图JS API报错10009?手把手教你解决USERKEY_PLAT_NOMATCH问题 当你在前端项目中集成高德地图JS API时,突然控制台抛出USERKEY_PLAT_NOMATCH错误(错误码10009),这意味着你的密钥与当前使用平台不匹配。这种问题看…...

STM32G030C8T6多通道ADC采集避坑指南:从时钟配置到采样周期,新手常犯的5个错误

STM32G030C8T6多通道ADC采集实战避坑指南:从原理到代码的完整解决方案 第一次接触STM32G030C8T6的多通道ADC采集时,我按照网上的教程配置完参数,却发现采集到的数据要么全是0,要么数值跳变严重。经过整整两天的调试和查阅参考手册…...

Transformer位置编码层代码详解:从正弦公式到PyTorch实现(附避坑指南)

Transformer位置编码层代码详解:从正弦公式到PyTorch实现(附避坑指南) 在自然语言处理领域,Transformer架构彻底改变了序列建模的方式。与传统RNN和LSTM不同,Transformer完全依赖自注意力机制来捕捉序列中的依赖关系。…...

Unity URP SRP Batcher 完全指南 URP/HDRP 下的核心批处理机制,大幅降低 CPU 开销

SRP Batcher 是 Unity Scriptable Render Pipeline (SRP) 的核心优化技术,通过减少 CPU 与 GPU 之间的数据传输开销,显著提升渲染性能。本文将深入解析其工作原理、使用方法及最佳实践。一、什么是 SRP BatcherSRP Batcher 是 Unity 为 Scriptable Rende…...

YOLOv8目标检测实战:用Shape-IoU损失函数提升小目标识别精度(附代码)

YOLOv8目标检测实战:用Shape-IoU损失函数提升小目标识别精度(附代码) 在无人机航拍和遥感图像分析领域,小目标检测一直是令人头疼的技术难点。当你在VisDrone数据集上训练YOLOv8模型时,是否遇到过这样的困境&#xff1…...

Mark Text vs Typora:免费开源Markdown编辑器的终极对比(附详细配置指南)

Mark Text vs Typora:开源与商业Markdown编辑器的深度解析与迁移指南 如果你正在寻找一款能够替代Typora的Markdown编辑器,同时又希望它免费且开源,那么Mark Text绝对值得你深入了解。这两款编辑器都以简洁优雅著称,但在细节处理…...