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