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;
}
相关推荐
啦哈拉哈14 小时前
Leetcode题解记录-hot100(81-100)
算法·leetcode·职场和发展
luj_176818 小时前
R语言生态优势与学习曲线分析
c语言·开发语言·网络·经验分享·算法
叶子野格19 小时前
《C语言学习:文件操作》16
c语言·开发语言·c++·学习·visual studio
AI科技星19 小时前
万有引力G与真空介电常数ε0全维度完整关系式汇编(基于v=c螺旋时空理论)
c语言·开发语言·前端·javascript·网络·汇编·electron
C^h19 小时前
6轴达妙机械臂
c语言
叶子野格20 小时前
《C语言学习:位运算》17
c语言·开发语言·c++·学习·visual studio
社交怪人21 小时前
【最大数】信息学奥赛一本通C语言解法(题号2056)
c语言
社交怪人21 小时前
【判断正负】信息学奥赛一本通C语言解法(题号1039)
c语言
龙腾AI白云1 天前
数字孪生:虚拟调试,真实交付
c语言·virtualenv·知识图谱
我不是懒洋洋1 天前
手写一个异步日志库:从printf到高性能无锁日志
java·c语言·开发语言·c++·visual studio