给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 个最小的元素。

说明:
你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。

示例 1:

输入: root = [3,1,4,null,2], k = 1
3
/ \
1 4
\
  2
输出: 1
示例 2:

输入: root = [5,3,6,2,4,null,null,1], k = 3
5
/ \
3 6
/ \
2 4
/
1
输出: 3

//二叉树的中序遍历
//左,根,右
class Solution {
public:int kthSmallest(TreeNode* root, int k) {if(root==NULL) return 0;int res=0,i=1;stack<TreeNode*> s;TreeNode* p=root;//根节点入栈s.push(root);while(!s.empty()){while(p&&p->left){p=p->left;s.push(p);}p=s.top();s.pop();if(i==k) {res=p->val;break;}i++;p=p->right;if(p) s.push(p);}return res;}
};

利用了二叉搜索树的性质,中序遍历时有序的

代码地址:https://www.cnblogs.com/joelwang/p/10919603.html

小米面试:二叉搜索中第K小的元素相关推荐

  1. 记录:2022-9-30 打家劫舍 二叉搜索树中第K小的元素 公平锁 磁盘调度

    学习时间:2022-9-30 学习内容 1.LeetCode 198. 打家劫舍 思路 dp[i] = dp[i-1]之前的最大值 + num[i] 优化思路:把最大值用一个变量来存 代码 class ...

  2. LeetCode 230. 二叉搜索树中第K小的元素(中序遍历)

    文章目录 1. 题目信息 2. 解题 2.1 中序递归 2.2 中序循环写法 1. 题目信息 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以 ...

  3. leetcode230. 二叉搜索树中第K小的元素(中序遍历)

    给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素.说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数.示例 1:输入: root = [3, ...

  4. 【LeetCode】230#二叉搜索树中第K小的元素

    题目描述 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 示例 1: 输入: ro ...

  5. 73. Leetcode 230. 二叉搜索树中第K小的元素 (二叉搜索树-中序遍历类)

    给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数).示例 1:输入:root = [3,1,4,null,2], k = 1 输出 ...

  6. LeetCode实战:二叉搜索树中第K小的元素

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given a bin ...

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

    给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 示例 1: 输入: root = ...

  8. 每天一道LeetCode-----寻找二叉搜索树中第k小的元素

    Kth Smallest Element in a BST 原题链接Kth Smallest Element in a BST 给顶一个二叉搜索树的根节点,找到这棵数第k小的值 两种方法 递归法的中序 ...

  9. 力扣题目——230. 二叉搜索树中第K小的元素

    注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查 ...

最新文章

  1. Python中str、list、numpy分片操作
  2. Windows Hyper-V远程信息泄露漏洞CVE-2017-8712 影响Win2016和win10
  3. 具有Azure功能的无服务器API
  4. 关于img 403 forbidden的一些思考
  5. html 设置统一样式,css 全局样式的定义
  6. 人工智能行业有哪些岗位_建筑行业“七大员”是哪些岗位?职责是什么?
  7. nginx: [emerg] bind() to 0.0.0.0:66 failed (98: Address already in use)
  8. html在线填空题,HTML测试题-(含答案).pdf
  9. php 仿360导航网站源码,仿360网址导航
  10. 详解 Redis 中布隆过滤器解决缓存穿透问题
  11. r730服务器安装系统蓝屏6,安装系统蓝屏解决解决方法
  12. pkg-config 详解
  13. 颜色空间(RGB、YUV、YIQ、CMY)
  14. 鸿蒙入门手册(二):应用是怎样运行的
  15. node-addon-api 的简单使用,c++数值、字符串、对象、数组转化为js可用数据。
  16. 关于Java中的锁,看这一篇就够了(总结篇)
  17. Linux 操作必备 150 个命令,速度收藏~
  18. 3Com公司不打算与华为共享敏感技术
  19. 24张神GIF动图:数学概念这么酷!
  20. 思茅的堂弟说信用卡滞纳金取消

热门文章

  1. 【Android RTMP】Android Camera 视频数据采集预览 ( 图像传感器方向设置 | Camera 使用流程 | 动态权限申请 )
  2. 【Java 网络编程】UDP API 简介 ( DatagramSocket | DatagramPacket )
  3. 【C++ 语言】面向对象 ( 成员函数 | 常量函数 | 友元函数 | 友元类 | 单例类 )
  4. 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
  5. 网络共享服务(三)之SAMBA
  6. idea springboot配置外置tomcat好处
  7. java web学习笔记-jsp篇
  8. 8 -- 深入使用Spring -- 5...1 启用Spring缓存
  9. Shell的一些基本用法
  10. HTML5/CSS3/JavaScript