Dado un árbol de búsqueda binario, escriba una función kthSmallest para encontrar el k-ésimo elemento más pequeño.
Explicación:
puede suponer que k siempre es válido, 1 ≤ k ≤ el número de elementos de árbol de búsqueda binarios.
puede suponer que k siempre es válido, 1 ≤ k ≤ el número de elementos de árbol de búsqueda binarios.
Solución de clase {
público:
int kthSmallest (raíz de TreeNode *, int k) {
apilar <TreeNode *> s;
int num = 0;
TreeNode * cur = root;
while (! s.empty () || cur)
{
si (cur)
{
s.push (cur);
cur = cur-> izquierda;
}
más
{
cur = s.top ();
s.pop ();
num ++;
si (num == k)
retorno cur-> val;
cur = cur-> right;
}
}
devuelve 0;
}
};