230. 二叉搜索树中第K小的元素
给定一个二叉搜索树,编写一个函数 kthSmallest 来查找其中第 k 个最小的元素。
说明:
你可以假设 k 总是有效的,1 ≤ k ≤ 二叉搜索树元素个数。
解题思路
利用二叉搜索书的中序遍历结果是升序的特点
在中序遍历的过程中判断当前数组是第几小,找到第k小时返回
运行结果
java代码
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public int kthSmallest(TreeNode root, int k) {
build(root,k);
return num;
}
int num;
int size=0;
public void build(TreeNode root,int k){
if(root == null) return;
build(root.left,k);
size++;
if(size == k){
num=root.val;
return;
}
build(root.right,k);
}
}
京公网安备 11010502036488号