El ganado fuera - el k-ésimo nodo del árbol de búsqueda binaria

Descripción Título
dado un árbol binario de búsqueda, encontrar el k-th nodos 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.
Solución: En traversal fin, considerar k <= 0 y donde k es mayor que el número total de nodos

class Solution {
    int cnt = 0;
    TreeNode * knode = NULL;
public:
    void DFS(TreeNode* pRoot, int k)
    {
        if (pRoot->left && cnt<k)
            DFS(pRoot->left, k);
        if (++cnt == k)
            knode = pRoot;
        if (pRoot->right && cnt<k)
            DFS(pRoot->right, k);
    }
    TreeNode* KthNode(TreeNode* pRoot, int k)
    {
        if (pRoot==NULL || k <= 0)
            return NULL;
        DFS(pRoot, k);
        return knode;
    }
};
Publicados 315 artículos originales · ganado elogios 119 · vistas 110 000 +

Supongo que te gusta

Origin blog.csdn.net/w144215160044/article/details/104962619
Recomendado
Clasificación