Pregunta de entrevista de Meta

Given a binary search tree, write an algorithm to find the kth smallest element

Respuesta de la entrevista

Anónimo

3 de sept de 2013

Logic is outlined here: http://stackoverflow.com/questions/2329171/find-kth-smallest-element-in-a-binary-search-tree-in-optimum-way c++ implementation struct Node { int val; Node* left; Node* right; }; Node* findKSmallest(Node* root, int k) { if (root == NULL){ return NULL; } int num_elements_left = numberElements(root->left); if (num_elements_left == k) { return root; } if (num_elements_left > k) { return findKSmallest(root->left, k); } return findKSmallest(root->right, k); } int numberElements(Node* root) { if (root == NULL) { return 0; } return numberElements(root->left) + numberElements(root->right) + 1; }