题目
给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。
思路
中序遍历得到排序好的list
返回list.get(k-1)
注意特判
代码
import java.util.ArrayList;
public class Solution {
TreeNode KthNode(TreeNode pRoot, int k)
{
if(pRoot == null) return null;
ArrayList<TreeNode> list = new ArrayList<>();
InOrder(pRoot,list);
if(k<=list.size()&& k >0){
return list.get(k-1);
}else{
return null;
}
}
void InOrder(TreeNode root, ArrayList<TreeNode> list){
if(root.left != null)
InOrder(root.left,list);
list.add(root);
if(root.right != null)
InOrder(root.right,list);
}
}