diff --git a/C++/kth-smallest-element-in-a-bst.cpp b/C++/kth-smallest-element-in-a-bst.cpp
new file mode 100644
index 00000000..b327a36c
--- /dev/null
+++ b/C++/kth-smallest-element-in-a-bst.cpp
@@ -0,0 +1,35 @@
+/**
+ * Definition for a binary tree node.
+ * struct TreeNode {
+ * int val;
+ * TreeNode *left;
+ * TreeNode *right;
+ * TreeNode() : val(0), left(nullptr), right(nullptr) {}
+ * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
+ * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
+ * };
+ */
+class Solution {
+public:
+ int kthSmallest(TreeNode* root, int k) {
+ int count = 0;
+ return inorder(root, k, count);
+ }
+
+private:
+ int inorder(TreeNode* node, int k, int& count) {
+ //Base case: Zero node
+ if(!node) return -1;
+
+ //Traverse left branch for kth smallest value:
+ int leftVal = inorder(node->left, k, count);
+ if(count == k) return leftVal;
+
+ //Process root node:
+ ++count;
+ if(count == k) return node->val;
+
+ //Traverse right branch for kth smallest value:
+ return inorder(node->right, k, count);
+ }
+};
\ No newline at end of file
diff --git a/README.md b/README.md
index b2cac739..e2353053 100644
--- a/README.md
+++ b/README.md
@@ -359,6 +359,7 @@ Check out ---> [Sample PR](https://github.com/codedecks-in/LeetCode-Solutions/pu
| 110 | [Balanced Binary Tree](https://leetcode.com/problems/balanced-binary-tree/) | [Java](./Java/Balanced-Binary-Tree.java) | _O(n)_ | _O(n)_ | Easy | DFS | |
| 1376 | [ Time Needed to Inform All Employees](https://leetcode.com/problems/time-needed-to-inform-all-employees/) | [C++](./C++/Cherry-Pickup-II.cpp) | _O(n)_ | _O(n)_ | Medium | DFS | |
| 200 | [Number of Islands](https://leetcode.com/problems/number-of-islands/) | [C++](./C++/number-of-islands.cpp) | _O(m * n)_ | _O(m * n)_ | Medium | DFS | |
+| 230 | [Kth Smallest Element in a BST](https://leetcode.com/problems/kth-smallest-element-in-a-bst/) | [C++](./C++/kth-smallest-element-in-a-bst.cpp) | _O(n)_ | _O(n)_ | Medium | DFS | |