leetcode热题100学习计划-二叉树-230二叉搜索树中第k小的元素

题目

二叉搜索树中第k小的元素

思路

准备一个容器,对二叉树进行中序遍历,如果容器容量达到了k则退出递归,退出递归的条件如下

  1. 如果当前遍历的结点为空,则返回
  2. 如果当前已经达到了k,则返回

代码


class Solution {
    public List mynode=new LinkedList<>();
    public int kthSmallest(TreeNode root, int k) {
        midsearch(root,k);
        return mynode.getLast();
    }
    public void midsearch(TreeNode root,int k){
        //当前为空则返回
        if(root==null){
            return;
        }

        midsearch(root.left,k);
        if(mynode.size()==k){
            return;
        }
		//左孩子可能加入了新值,所以判断一下

        mynode.addLast(root.val);
        if(mynode.size()==k){
            return;
        }
        //当前结点加入后,判断一下


        midsearch(root.right,k);
        
        

        
    }

}

你可能感兴趣的:(leetcode,学习,算法)