From 4ec2a45193c02c2f483354dbcb8f0ecea9b6cd91 Mon Sep 17 00:00:00 2001 From: tbansod2018 Date: Fri, 13 Oct 2023 23:22:51 +0530 Subject: [PATCH] k-th smallest element in bst added --- Trees/kth_smallest_element_in_bst.cpp | 57 +++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Trees/kth_smallest_element_in_bst.cpp diff --git a/Trees/kth_smallest_element_in_bst.cpp b/Trees/kth_smallest_element_in_bst.cpp new file mode 100644 index 0000000..f8679fe --- /dev/null +++ b/Trees/kth_smallest_element_in_bst.cpp @@ -0,0 +1,57 @@ +#include +#include +#include +#include +using namespace std; + +class TreeNode { + public: + int val; + TreeNode* left; + TreeNode* right; + + TreeNode(int val) { + this->val = val; + left = NULL; + right = NULL; + } + + ~TreeNode() { + delete left; + delete right; + } +}; + +int kthSmallest(TreeNode* root, int k) { + if(!root){return 0;} + vectorv; + queueq; + q.push(root); + while(!q.empty()){ + root=q.front(); + q.pop(); + v.push_back(root->val); + if(root->left){q.push(root->left);} + if(root->right){q.push(root->right);} + } + sort(v.begin(), v.end()); + if(v.size()left = new TreeNode(1); + root->right = new TreeNode(4); + root->left->right = new TreeNode(2); + + int k = 2; + int result = kthSmallest(root, k); + cout << "The " << k << "th smallest element is: " << result << endl; + + + delete root; + + return 0; + +}