1.题目:
给定一棵二叉搜索树,请找出其中的第k小的结点。
输入
{5,3,7,2,4,6,8},3
返回值
{4}
说明
按结点数值大小顺序第三小结点的值为4 2.思路:
本题最关键的在于是一颗搜索二叉树,那么中序遍历的输出结果就是一个递增的数组!!!!!!
import java.util.ArrayList;
public class Solution {
ArrayList<TreeNode> arr=new ArrayList<>();//用一个自动扩容的数组存放遍历输出
TreeNode KthNode(TreeNode pRoot, int k)
{
if(pRoot==null){//判空
return null;
}
inOrder(pRoot);//中序遍历
if(k<1||k>arr.size()){//超出数组界限的k
return null;
}
return arr.get(k-1);
}
private void inOrder(TreeNode root){
if(root.left!=null){
inOrder(root.left);
}
arr.add(root);
if(root.right!=null){
inOrder(root.right);
}
}
}
京公网安备 11010502036488号