思路:二叉搜索树的中序遍历是有序的。
ArrayList<TreeNode> midTraceForKthNode(TreeNode pRoot,int k){
ArrayList<TreeNode> sortedList=new ArrayList<>();
if(pRoot==null||sortedList.size()==k) return sortedList;
//将每一个中间结果的size与k比较,相等立即返回
sortedList.addAll(midTraceForKthNode(pRoot.left,k));
if(sortedList.size()==k) return sortedList;
sortedList.add(pRoot);
if(sortedList.size()==k) return sortedList;
sortedList.addAll(midTraceForKthNode(pRoot.right,k));
return sortedList;
}
TreeNode KthNode(TreeNode pRoot, int k)
{
if(pRoot==null||k<=0) return null;
ArrayList<TreeNode> sortedList=midTraceForKthNode(pRoot,k);
if(sortedList.size()<k) return null;
else return sortedList.get(k-1);
}