import java.util.ArrayList;
/**
* 二叉搜索树的第k个结点
*
* 给定一棵二叉搜索树,请找出其中的第k小的结点
*
* 示例:
* 输入:{5,3,7,2,4,6,8},3
* 输出:{4}
*/
public class JZ062TheKthNodeOfBinarySearchTree {
ArrayList<TreeNode> list = new ArrayList<>();
TreeNode KthNode(TreeNode pRoot, int k) {
if (pRoot == null || k <= 0) {
return null;
}
ArrayList<TreeNode> listCore = new ArrayList<>();
listCore = midOrder(pRoot);
if (k > listCore.size()) {
return null;
}
return listCore.get(k - 1);
}
ArrayList<TreeNode> midOrder(TreeNode node) {
if (node != null) {
midOrder(node.left);
list.add(node);
midOrder(node.right);
}
return list;
}
}