解題思路
拿數字 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;
}
};
沒有留言:
張貼留言