小米面试:二叉搜索中第K小的元素
给定一个二叉搜索树,编写一个函数 kthSmallest
来查找其中第 k 个最小的元素。
说明:
你可以假设 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小的元素相关推荐
- 记录:2022-9-30 打家劫舍 二叉搜索树中第K小的元素 公平锁 磁盘调度
学习时间:2022-9-30 学习内容 1.LeetCode 198. 打家劫舍 思路 dp[i] = dp[i-1]之前的最大值 + num[i] 优化思路:把最大值用一个变量来存 代码 class ...
- LeetCode 230. 二叉搜索树中第K小的元素(中序遍历)
文章目录 1. 题目信息 2. 解题 2.1 中序递归 2.2 中序循环写法 1. 题目信息 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以 ...
- leetcode230. 二叉搜索树中第K小的元素(中序遍历)
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素.说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数.示例 1:输入: root = [3, ...
- 【LeetCode】230#二叉搜索树中第K小的元素
题目描述 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 示例 1: 输入: ro ...
- 73. Leetcode 230. 二叉搜索树中第K小的元素 (二叉搜索树-中序遍历类)
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数).示例 1:输入:root = [3,1,4,null,2], k = 1 输出 ...
- LeetCode实战:二叉搜索树中第K小的元素
背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given a bin ...
- 二叉搜索树中第K小的元素
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 示例 1: 输入: root = ...
- 每天一道LeetCode-----寻找二叉搜索树中第k小的元素
Kth Smallest Element in a BST 原题链接Kth Smallest Element in a BST 给顶一个二叉搜索树的根节点,找到这棵数第k小的值 两种方法 递归法的中序 ...
- 力扣题目——230. 二叉搜索树中第K小的元素
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查 ...
最新文章
- Python中str、list、numpy分片操作
- Windows Hyper-V远程信息泄露漏洞CVE-2017-8712 影响Win2016和win10
- 具有Azure功能的无服务器API
- 关于img 403 forbidden的一些思考
- html 设置统一样式,css 全局样式的定义
- 人工智能行业有哪些岗位_建筑行业“七大员”是哪些岗位?职责是什么?
- nginx: [emerg] bind() to 0.0.0.0:66 failed (98: Address already in use)
- html在线填空题,HTML测试题-(含答案).pdf
- php 仿360导航网站源码,仿360网址导航
- 详解 Redis 中布隆过滤器解决缓存穿透问题
- r730服务器安装系统蓝屏6,安装系统蓝屏解决解决方法
- pkg-config 详解
- 颜色空间(RGB、YUV、YIQ、CMY)
- 鸿蒙入门手册(二):应用是怎样运行的
- node-addon-api 的简单使用,c++数值、字符串、对象、数组转化为js可用数据。
- 关于Java中的锁,看这一篇就够了(总结篇)
- Linux 操作必备 150 个命令,速度收藏~
- 3Com公司不打算与华为共享敏感技术
- 24张神GIF动图:数学概念这么酷!
- 思茅的堂弟说信用卡滞纳金取消
热门文章
- 【Android RTMP】Android Camera 视频数据采集预览 ( 图像传感器方向设置 | Camera 使用流程 | 动态权限申请 )
- 【Java 网络编程】UDP API 简介 ( DatagramSocket | DatagramPacket )
- 【C++ 语言】面向对象 ( 成员函数 | 常量函数 | 友元函数 | 友元类 | 单例类 )
- 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
- 网络共享服务(三)之SAMBA
- idea springboot配置外置tomcat好处
- java web学习笔记-jsp篇
- 8 -- 深入使用Spring -- 5...1 启用Spring缓存
- Shell的一些基本用法
- HTML5/CSS3/JavaScript