2023年2月15日 星期三

230. Kth Smallest Element in a BST

解題思路

拿數字 k 來檢查現在用 inorder 走訪過幾個 node,每次走訪都把 k 減 1。

當 k 為 0,表示這個 node 就是我們要的。存在 ans 裡面。

程式碼

class Solution {
public:
    int ans = 0;

    void helper(TreeNode* root, int& k)
    {
        if(root == nullptr)
            return;
        
        helper(root->left, k);
        k--;
        if(k == 0) ans = root->val;
        helper(root->right, k);
    }
    int kthSmallest(TreeNode* root, int k) {
        helper(root, k);
        return this->ans;
    }
};

沒有留言:

張貼留言