力扣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);
    }
};
相关推荐
aaaameliaaa1 小时前
字符函数和字符串函数
c语言·笔记·算法
城管不管2 小时前
ReAct、Plan-and-Execute、Reflection 三大智能 Agent 范式核心区别
java·人工智能·算法·spring·ai·动态规划
月疯3 小时前
二分法算法(水平等分图形面积)
算法
豆瓣鸡3 小时前
算法日记 - Day3
java·开发语言·算法
白白白小纯3 小时前
算法篇—反转链表
c语言·数据结构·算法·leetcode
Achou.Wang3 小时前
深入理解go语言-第5章 并发编程——Go的灵魂
大数据·算法·golang
The Chosen One9854 小时前
高进度算法模板速记(待完善)
java·前端·算法
圣保罗的大教堂6 小时前
leetcode 3517. 最小回文排列 I 中等
leetcode
土豆.exe6 小时前
Fastjson2 2.0.53 哈希碰撞 RCE:从原理到三种打法
算法·哈希算法
黄河123长江6 小时前
有限Abel群的结构()
算法