力扣230. 二叉搜索树中第K小的元素

Problem: 230. 二叉搜索树中第K小的元素

文章目录

题目描述


思路及解法

1.由二叉搜索树 的性质我们易得若中序遍历一棵二叉搜索树,则会得到一个递增的有序序列

2.则我们中序遍历 一棵二叉搜索树,同时记录一个int变量rangk 每次在中序操作时让rank自增,等于k时直接结束递归并返回当前的节点值;

复杂度

时间复杂度:

O ( n ) O(n) O(n);其中 n n n为二叉搜索树的节点的个数

空间复杂度:

O ( h e i g h t ) O(height) O(height);其中 h e i g h t height height为二叉搜索树的高度

Code

cpp 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    //Records the final result
    int res = 0;
    //Records the location of the current in-order traversal node
    int rank = 0;
    /**
     * Finds the KTH smallest element in a binary search tree
     *
     * @param root The root of binary tree
     * @param k The given number
     * @return int
     */
    int kthSmallest(TreeNode* root, int k) {
        if (root == nullptr) {
            return 0;
        }
        inorderedTraver(root, k);
        return res;
    }

    /**
     * Inorder traversal function
     * 
     * @param root The given number
     * @param k The given number
     */
    void inorderedTraver(TreeNode* root, int k) {
        if (root == nullptr) {
            return;
        }
        inorderedTraver(root -> left, k);
        rank++;
        if (rank == k) {
            res = root -> val;
            return;
        }
        inorderedTraver(root -> right, k);
    }
};
相关推荐
To_OC6 小时前
LC 994 腐烂的橘子:人人都说是 BFS 入门题,我却写了三遍才过
javascript·算法·leetcode
金銀銅鐵10 小时前
[Python] 扩展欧几里得算法
python·数学·算法
To_OC12 小时前
LC 200 岛屿数量:经典 DFS 入门题,我第一次写居然连方向都搞错了
javascript·算法·leetcode
To_OC1 天前
LC 128 最长连续序列:别上来就排序,O (n) 解法才是这题的灵魂
javascript·算法·leetcode
05Kevin2 天前
lk每日冒险题--数据结构6.27
算法
To_OC2 天前
从一次栈溢出报错说起,我把递归彻底扒明白了
javascript·算法·程序员
千纸鹤安安2 天前
千问Qwen-AgentWorld来了:一个语言模型搞定七大Agent场景,GPT-5.4都输了
算法
七牛开发者3 天前
MCP 到底是什么?为什么 Agent 都想接上它
算法·aigc·agent