C语言 | Leetcode C语言题解之第230题二叉搜索树中第K小的元素

题目:

题解:

cpp 复制代码
/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */

int search_num(struct TreeNode* root, int k, int *result, int num)
{
    if(num == k + 1)
    {
        return k + 1; // 已找到就不往下跑了
    }

    if(root->left)
    {
        num = search_num(root->left, k, result, num);
    }
    if(num == k)
    {
        *result =  root->val;
        return k + 1; // 已找到就不往下跑了
    }
    num++;
    if(root->right)
    {
        num = search_num(root->right, k, result, num);
    }

    return num;
}

int kthSmallest(struct TreeNode* root, int k) {
    int result = 0;

    search_num(root, k, &result, 1); // 开始寻找

    return result;
}
相关推荐
qq_4017004117 小时前
嵌入式用Unix时间的优势及其C语言转换
服务器·c语言·unix
CoderYanger20 小时前
优选算法-栈:67.基本计算器Ⅱ
java·开发语言·算法·leetcode·职场和发展·1024程序员节
夏鹏今天学习了吗20 小时前
【LeetCode热题100(72/100)】前 K 个高频元素
leetcode
墨染点香1 天前
LeetCode 刷题【172. 阶乘后的零】
算法·leetcode·职场和发展
做怪小疯子1 天前
LeetCode 热题 100——链表——反转链表
算法·leetcode·链表
智者知已应修善业1 天前
【51单片机普通延时奇偶灯切换】2023-4-4
c语言·经验分享·笔记·嵌入式硬件·51单片机
晚风(●•σ )1 天前
C++语言程序设计——11 C语言风格输入/输出函数
c语言·开发语言·c++
X***48961 天前
C源代码生成器
c语言·开发语言
做怪小疯子1 天前
LeetCode 热题 100——矩阵——旋转图像
算法·leetcode·矩阵
sin_hielo1 天前
leetcode 2435
数据结构·算法·leetcode