230.二叉搜索树中第K小的元素
给定一个二叉搜索树,编写一个函数 kthSmallest
来查找其中第 k 个最小的元素。
说明:
你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。
示例 1:
输入: root = [3,1,4,null,2], k = 13/ \1 4\2 输出: 1
示例 2:
输入: root = [5,3,6,2,4,null,null,1], k = 35/ \3 6/ \2 4/1 输出: 3
进阶:
如果二叉搜索树经常被修改(插入/删除操作)并且你需要频繁地查找第 k 小的值,你将如何优化 kthSmallest
函数?
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int kthSmallest(TreeNode* root, int k) {
int cnt = 0;
stack<TreeNode*> s;
TreeNode *p = root;
while (p || !s.empty()) {
while (p) {
s.push(p);
p = p->left;
}
p = s.top(); s.pop();
++cnt;
if (cnt == k) return p->val;
p = p->right;
}
return 0;
}
};
230.二叉搜索树中第K小的元素相关推荐
- LeetCode 230. 二叉搜索树中第K小的元素(中序遍历)
文章目录 1. 题目信息 2. 解题 2.1 中序递归 2.2 中序循环写法 1. 题目信息 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以 ...
- 【LeetCode】230#二叉搜索树中第K小的元素
题目描述 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 示例 1: 输入: ro ...
- 【Leetcode | 49】230. 二叉搜索树中第K小的元素
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 示例 1: 输入: root = ...
- 73. Leetcode 230. 二叉搜索树中第K小的元素 (二叉搜索树-中序遍历类)
给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数).示例 1:输入:root = [3,1,4,null,2], k = 1 输出 ...
- 力扣题目——230. 二叉搜索树中第K小的元素
注:本文的代码实现使用的是 JS(JavaScript),为前端中想使用JS练习算法和数据结构的小伙伴提供解题思路. 描述 给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查 ...
- LeetCode 230. 二叉搜索树中第K小的元素(递归)
题目描述 给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素. 说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数. 思路 详见链接 代码 c ...
- leetcode 230. Kth Smallest Element in a BST | 230. 二叉搜索树中第K小的元素(Java)
题目 https://leetcode.com/problems/kth-smallest-element-in-a-bst/ 题解 方法1:中序遍历+剪枝 import java.util.Arra ...
- LeetCode 230二叉搜索树中第k小的元素
思路: ※一.中序遍历,找第k个元素 class Solution { public:vector<int>res;void inorder(TreeNode *root){if(root ...
- 记录:2022-9-30 打家劫舍 二叉搜索树中第K小的元素 公平锁 磁盘调度
学习时间:2022-9-30 学习内容 1.LeetCode 198. 打家劫舍 思路 dp[i] = dp[i-1]之前的最大值 + num[i] 优化思路:把最大值用一个变量来存 代码 class ...
- leetcode230. 二叉搜索树中第K小的元素(中序遍历)
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素.说明: 你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数.示例 1:输入: root = [3, ...
最新文章
- 优酷智能档在大型直播场景下的技术实践
- 英特尔软件学院与中国一起迎接2008
- 百度地图滚轮缩放,所在点偏移问题
- linux 丢包排查思路简述(tcp+rdma)
- hdu 6899 Xor 数位dp
- AFN\HTTPS\UIWebView
- LDAP----manage-account
- 判断用户输入的这个数是不是质数
- Android学习笔记(18):编辑框EditText
- python与开源gis_Python与开源GIS:数据处理、空间分析与地图制图
- 哔哩哔哩谷歌浏览器助手Mac版分享来了
- 回溯算法高效解标准数独
- 数据库查询语句内连接外连接效率
- SpringBoot项目运行时出现A cookie header was received警告问题
- Android 环信 客服集成
- 可惜知乎没有注销账号的选项
- 4.1_[Java 输入输出]-全网最全 Java 控制台输入输出
- 抽象类和接口不能直接实例?
- java字符串转成utf-8_将字符串的编码格式转换为utf-8
- NOIP提高组初赛[选择题知识点汇总]