LeetCode230. Kth Smallest Element in a BST
来源:互联网 发布:文心雕龙数据库有吗 编辑:程序博客网 时间:2024/06/13 23:04
LeetCode230. Kth Smallest Element in a BST
题目:
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?
分析1,这是一棵树,所以我们优先考虑递归去实现
分析2,这是一颗BST,所以是排序的。
因此可以通过分析它的子问题和终止条件得到这道题的解决方案。
代码:
/** * 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 t = find(root->left); if (k > t) { if (k == t + 1) return root->val; else return kthSmallest(root->right, k - t - 1); } else { return kthSmallest(root->left, k); } } int find(TreeNode* root) { if (!root) return 0; int left = find(root->left); int right = find(root->right); return left + right + 1; }};
阅读全文
0 0
- LeetCode230:Kth Smallest Element in a BST
- Leetcode230 Kth Smallest Element in a BST
- LeetCode230 Kth Smallest Element in a BST
- LeetCode230. Kth Smallest Element in a BST
- leetcode230:Kth Smallest Element in a BST
- LeetCode230——Kth Smallest Element in a BST
- leetcode230:Kth Smallest Element in a BST(medium)
- leetcode230---Kth Smallest Element in a BST(BST中寻找第K小)
- #leetcode#Kth Smallest Element in a BST
- 230.Kth Smallest Element in a BST
- leetcode--Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- Leetcode|Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- [leetcode] Kth Smallest Element in a BST
- 【LeetCode】Kth Smallest Element in a BST
- Kth Smallest Element in a BST
- chrome浏览器保存mht网页文件的方法
- Redhalt6网络设置,图形界面和命令行模式
- delayqueue
- 从物理内存角度描述内存之间的关系(bootmem_init)
- Rust: Operations with sequence
- LeetCode230. Kth Smallest Element in a BST
- Struts2:一
- Mysql架构组成之存储引擎总结
- Java-String总结
- ACL访问控制列表
- 轨迹数据挖掘(trajectory data mining)
- hdu 3182(状压dp)
- 泛函分析简列:度量空间之逼近定理及有穷维B*空间刻画
- hive分区表几大注意事项