递归专项-230. 二叉搜索树中第K小的元素

2021/12/7 6:19:22

本文主要是介绍递归专项-230. 二叉搜索树中第K小的元素,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在这里插入图片描述

题目:

在这里插入图片描述
因为二叉搜索树本身的中序排列是有序的,因此这里求取第k个最小值,可以极大复用该能力。
代码:

class Solution {
    public int kthSmallest(TreeNode root, int k) {
        
        return kthSmallestDg(root, k);
    }

    int i = 0;
    public int kthSmallestDg(TreeNode root, int k) {


        if (root == null) {
            return -1;
        }

        int i = kthSmallestDg(root.left, k);
        if (i != -1) {
            return i;
        }
        this.i++;
        if (this.i == k) {
            return root.val;
        }
        int i1 = kthSmallestDg(root.right, k);

        if (i1 != -1) {
            return i1;
        }

        return -1;
    }
}



这篇关于递归专项-230. 二叉搜索树中第K小的元素的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程