Loading

Leetcode-230-二叉排序树中第K小的元素

题目链接


题目描述

给定一个二叉搜索树的根节点 root ,和一个整数 k ,
查找其中第 k 个最小元素(从 1 开始计数)。

思路

二叉排序树的 中序遍历 是升序。

直接中序遍历呗,用个变量 记录 访问数据的个数,

好久不写递归遍历,不会写了....

C++代码


class Solution {
public:
    int i = 0;
    int kthSmallest(TreeNode* root, int k)
    {
        if (root == nullptr) return -1;

        int left = kthSmallest(root->left, k);
        if (left != -1) return left;

        i++;
        if (i == k) return root->val;

        int right = kthSmallest(root->right, k);
        if (right != -1) return right;

        return -1;
    }
};

posted @ 2022-01-23 15:43  ARUI丶  阅读(28)  评论(0编辑  收藏  举报