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;
}
相关推荐
@蓝莓果粒茶12 分钟前
LeetCode第158题_用Read4读取N个字符 II
前端·c++·python·算法·leetcode·职场和发展·c#
刚入坑的新人编程24 分钟前
数据结构——栈和队列
c语言·数据结构·c++·链表·数组
YKPG32 分钟前
c语言修炼秘籍 - - 禁(进)忌(阶)秘(技)术(巧)【第六式】文件操作
java·c语言·数据库
傍晚冰川1 小时前
【单片机 &C语言】单片机学习过程中常见C库函数(学习笔记)
c语言·笔记·stm32·单片机·学习·阿里云
浅陌pa1 小时前
01、单片机简介
c语言·stm32·单片机·嵌入式硬件
旷野本野2 小时前
【LeetCode】嚼烂热题100【持续更新】
算法·leetcode
祁同伟.2 小时前
OJ - 设计循环队列
c语言·数据结构·算法
啊阿狸不会拉杆2 小时前
数据结构-数组与广义表
java·c语言·数据结构·c++·python·算法
小陈爱建模2 小时前
【已更新】2025华中杯C题数学建模网络挑战赛思路代码文章教学数学建模思路:就业状态分析与预测
c语言·开发语言·数学建模
NEWEVA__zzera224 小时前
CH585单片机的LCD外设怎么驱动段式LCD
c语言·单片机