trabajo informal
Dado un árbol binario de búsqueda, por favor, encontrar los nodos de la primera k más pequeños en el mismo. Por ejemplo, (5,3,7,2,4,6,8), los valores numéricos de acuerdo con la tercera punto de unión es 4 resumen.
pensamiento
Árbol binario de búsqueda? No es que se ordenó el fin de averiguar el primero de varios pequeños, se puede colocar directamente en la secuencia de orden.
código
public class Solution {
int index = 0; //计数器
TreeNode KthNode(TreeNode root, int k)
{
if(root != null){ //中序遍历寻找第k个
TreeNode node = KthNode(root.left,k);
if(node != null)
return node;
index ++;
if(index == k)
return root;
node = KthNode(root.right,k);
if(node != null)
return node;
}
return null;
}
}