题目描述
给定一颗二叉搜索树,请找出其中的第k小的结点。例如, 5 / \ 3 7 /\ /\ 2 4 6 8 中,按结点数值大小顺序第三个结点的值为4。
/*
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
import java.util.*;
public class Solution {
ArrayList<TreeNode> list = new ArrayList<>();
TreeNode KthNode(TreeNode pRoot, int k)
{
if(pRoot == null||k==0||list.size() == k)
return null;
//采用中序遍历和递归的方法
if(pRoot.left!=null){
KthNode(pRoot.left,k);
}
list.add(pRoot);
if(pRoot.right!=null){
KthNode(pRoot.right,k);
}
return k>list.size()?null:list.get(k-1);
}
}