230. Kth Smallest Element in a BST
来源:互联网 发布:sql加用户名和密码 编辑:程序博客网 时间:2024/05/17 08:28
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).
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public int kthSmallest(TreeNode root, int k) { if (root == null) return 0; int cnt = cntNode(root.left); if (k > cnt+1) return kthSmallest(root.right, k-cnt-1); else if (k <= cnt) return kthSmallest(root.left, k); return root.val; } public int cntNode(TreeNode root) { if (root == null) return 0; return 1 + cntNode(root.left) + cntNode(root.right); }}
0 0
- 230.Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- 230. Kth Smallest Element in a BST
- maven学习使用
- POJ 3157 Java vs C++ 可能会
- Java Fundamental day06
- python 读取并显示图片的两种方法
- 使用 Apache Commons CLI 开发命令行工具示例
- 230. Kth Smallest Element in a BST
- zhedapat1002
- RCNN系列学习笔记(6):SSD: Single Shot MultiBox Detector
- MongoDB —— Windows环境安装与简单使用
- 剑指offer 字符串的排列
- eclipse 用ctrl+左键去查看一个变量的声明之后,有没有快捷键返回之前点的那个位置
- Win10开发笔记11
- 自己动手搭建苹果推送Push服务器
- Tempter of the Bone