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

力扣 hot100 Day45

230. 二叉搜索树中第 K 小的元素

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 小的元素(从 1 开始计数)。

//抄的
class Solution {
public:   void helper(TreeNode* root,int k,int& count,int& result){   if(!root) return;helper(root->left,k,count,result);count++;if(count==k){result = root->val;return;}helper(root->right,k,count,result);}int kthSmallest(TreeNode* root, int k) {int count=0;int result;helper(root,k,count,result);return result;}
};

二叉搜索树的中序遍历结果必定是一个升序序列​

在中序遍历的逻辑基础上,维护一个count引用进行计数,与k进行对比,就能够遍历到第k小的元素。

可以考虑用显式栈替换递归栈进行中序遍历,可以避免递归栈溢出,如下

//抄的
class Solution {
public:   int kthSmallest(TreeNode* root, int k) {stack<TreeNode*> st;int count = 0;while (root || !st.empty()) {while (root) {  // 遍历左子树st.push(root);root = root->left;}root = st.top();st.pop();count++;if (count == k) return root->val;root = root->right;  // 遍历右子树}return -1;  // 如果 k 超出范围}
};

http://www.dtcms.com/a/280412.html

相关文章:

  • ZYNQ千兆光通信实战:Tri Mode Ethernet MAC深度解析
  • Keepalived双机热备概述
  • 基于深度学习的LSTM、GRU对大数据交通流量分析与预测的研究
  • omniparser v2 本地部署及制作docker镜像(20250715)
  • 从浏览器到服务器:TCP 段的网络传输之旅
  • 设计模式二:策略模式 (Strategy Pattern)
  • 云计算如何提高企业的数据安全性和隐私保护
  • 我会秘书长杨添天带队赴杭州融量农业发展有限公司考察调研
  • NQTT-基础知识
  • CSS :root伪类详解:实现动态主题切换的关键所在
  • 7.15 Java基础|大小写转换、数组、ArrayList类
  • 基于Langchain4j开发AI编程助手
  • Python_1
  • 高等数学强化——导学
  • 【Python练习】044. 编写一个函数,实现快速排序算法
  • 第十三讲 | map和set的使用
  • JavaDemo——使用CGLIB动态代理
  • I3C通信驱动开发注意事项
  • 【雅思播客016】New Year Resolution 新年决心
  • docker搭建freeswitch实现点对点视频,多人视频
  • 极致cms多语言建站|设置主站默认语言与设置后台固定语言为中文
  • 嵌入式学习-PyTorch(4)-day21
  • 多相机depth-rgb图组完整性分拣器_MATLAB实现
  • @[TOC](模拟) # 1.替换所有的问号(easy)
  • 学C++做游戏,先搞懂这些基础要点
  • 《大数据技术原理与应用》实验报告六 Flink编程实践
  • 使用JS编写用户信息采集表单
  • 【Python3-Django】快速掌握DRF:ModelViewSet实战指南
  • OneCode 3.0 从0到1干货——AIGC及MCP注解驱动开发物联网AI决策应用
  • 全新 Python 项目托管到 Gitee 私有仓库完整流程(带详细命令注释)