LeetCode #230 - Kth Smallest Element in a BST - Medium
来源:互联网 发布:房价数据网 编辑:程序博客网 时间:2024/05/22 07:08
Problem
Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.
Note:
You may assume k is always valid, 1 ≤ k ≤ BST's total elements.
Follow up:
What if the BST is modified (insert/delete operations) often and you need to find the kth smallest frequently? How would you optimize the kthSmallest routine?
Hint:
- Try to utilize the property of a BST.
- What if you could modify the BST node’s structure?
- The optimal runtime complexity is O(height of BST).
Example
Input: [1]Output: 1
Algorithm
整理一下题意:给定一棵二叉搜索树和整数k,要求返回树中第k个最小的元素。假设k总是有效输入。
解题的关键在于利用好二叉搜索树的性质。二叉搜索树的特征是:左子<父<右子。于是中序遍历得到的序列必然是升序序列。于是根据k可以直接返回升序序列的第k-1项了。
代码如下。
//版本,时间复杂度O(n)class Solution {public: int kthSmallest(TreeNode* root, int k) { vector<int> path; inorder(path,root); return path[k-1]; } void inorder(vector<int>& path,TreeNode* root){ if(root==NULL) return; inorder(path,root->left); path.push_back(root->val); inorder(path,root->right); }};
0 0
- [Leetcode 230, Medium] Kth Smallest Element in a BST
- LeetCode #230 - Kth Smallest Element in a BST - Medium
- Leetcode 230. Kth Smallest Element in a BST (Medium) (cpp)
- #leetcode#Kth Smallest Element in a BST
- leetcode--Kth Smallest Element in a BST
- Leetcode|Kth Smallest Element in a BST
- [leetcode] Kth Smallest Element in a BST
- 【LeetCode】Kth Smallest Element in a BST
- LeetCode Kth Smallest Element in a BST
- 【leetcode】Kth Smallest Element in a BST
- LeetCode Kth Smallest Element in a BST
- leetcode: Kth Smallest Element in a BST
- Leetcode: Kth Smallest Element in a BST
- [LeetCode] Kth Smallest Element in a BST
- [LeetCode]Kth Smallest Element in a BST
- [Leetcode]Kth Smallest Element in a BST
- leetcode--Kth Smallest Element in a BST
- 【leetcode】Kth Smallest Element in a BST
- code signing is required for product type 'Unit Test Bundle' in SDK 'iOS 10.1'
- JavaScript之DOM
- centos7下使用yum安装mysql
- 开启Nginx的目录文件列表功能
- ImageView+OkHttpUtils实现简单图片显示
- LeetCode #230 - Kth Smallest Element in a BST - Medium
- 【51.27%】【codeforces 604A】Uncowed Forces
- RxJava RxAndroid 1.2 学习记录
- Google C++ Test Framework使用
- 斯坦福Swift公开课上线 国内开发者已着手翻译
- 安装babel
- HanderThread详解
- JAVA WEB 学习之路-完结总结。
- php 复制文件并重命名