题目:
分析:因为二叉搜索树的中序遍历是递增的这一特性,可以先得到该二叉搜索树的中序遍历序列,然后直接返回第k个元素即可。
/**
* Definition of TreeNode:
* public class TreeNode {
* public int val;
* public TreeNode left, right;
* public TreeNode(int val) {
* this.val = val;
* this.left = this.right = null;
* }
* }
*/
public class Solution {
/**
* @param root: the given BST
* @param k: the given k
* @return: the kth smallest element in BST
*/
public int kthSmallest(TreeNode root, int k) {
// write your code here
List<Integer> list=new ArrayList<>();
inOrderTraval(list,root);
return list.get(k-1);
}
public void inOrderTraval(List<Integer> list,TreeNode root){
if(root.left!=null){
inOrderTraval(list,root.left);
}
list.add(root.val);
if(root.right!=null){
inOrderTraval(list,root.right);
}
}
}