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

二叉搜索树中第k小的元素

本题用中序遍历加上一个额外的储存栈来输出第k个则空间复杂度会增加,拿不了满分

/** * 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: int res=0; int cnt=0; bool flag=false; int minval=-1; int kthSmallest(TreeNode* root, int k) { dfs(root,k); return res; } void dfs(TreeNode* t,int k) { if(t==nullptr||flag==true) { return ; } dfs(t->left, k); if(t->val>minval) { cnt++; minval=t->val; if(cnt==k) { flag=true; res=t->val; } } dfs(t->right,k); } };
http://www.jsqmd.com/news/1325197/

相关文章:

  • Unity网络通信中Curl error 60的根源分析与安全解决方案
  • Python实战进阶:从环境配置到量化交易开发
  • B站视频下载终极指南:三步解锁大会员4K高清视频
  • STM32 U盘模式IAP实现:基于HAL库的固件升级方案详解
  • 战略撤退决策框架:识别时机与执行路径
  • 技术成长:从执行到思考的认知跃迁与工程实践
  • Wi-Fi天线原理与实战调优:从增益、极化到MIMO,彻底改善信号质量
  • RocketMQ 的“全局画面
  • 3步解锁网易云音乐:让加密NCM文件重获播放自由
  • 软件公司生存策略:火箭模式与印钞机模式解析
  • Vue3+Vite项目集成Unity WebGL:解决路径与构建配置的完整指南
  • 智能客服Agent的“知识焦虑”与RAG破局之道
  • 静态时序分析实战:从建立/保持时间到时钟偏斜的完整计算与优化
  • 如何把开题报告设计成可复核的研究工作流
  • Java枚举类深度解析:原理、应用与性能优化
  • AI编程时代:智能体框架和基础模型,到底谁更重要?
  • OpenClaw智能体框架下提示词注入的纵深防御体系构建
  • 从零构建纯净Win10 PE:定制化系统维护环境的完整指南
  • 软件测试能力构建:自动化、安全与性能测试的实战融合指南
  • 从流量监控到样本仿真:构建主动防御的应急响应闭环
  • 中国历史上古到新中国成立历史大事表
  • 毫米波技术解析:从物理特性到5G、雷达与工业应用实战
  • NHSE终极指南:3步掌握动物森友会存档编辑器,轻松实现岛屿改造与村民管理
  • 内容重发布实验:提升数字营销效果的系统方法
  • Windows Server 2008 R2打印服务器搭建与客户端部署全指南
  • 第五届智能机械与人机交互技术国际学术会议(IHCIT 2026)
  • Flutter vm_service鸿蒙适配与调试优化实战
  • HTTP请求中真实IP获取:REMOTE_ADDR、X-Forwarded-For等字段原理与实战
  • 一天学会nextjs
  • 郑州搬家内行才知道的内幕!2026正规搬家公司清单,避开99%的坑 - 达海