Bouton d'alimentation 22. Les questions face des explications liées liste noeud k bis avant-dernier 100%

Voie rapide: https://leetcode-cn.com/problems/lian-biao-zhong-dao-shu-di-kge-jie-dian-lcof/

sujet:

Entrée d'une liste liée, l'avant-dernier noeud de sortie de liste chaînée k. Afin de répondre à l'habitude de la plupart des gens, cette question comptée à partir de 1, qui est la fin de la liste des noeuds est l'avant-dernier d'un nœud. Par exemple, une liste chaînée a six nœuds, les nœuds partir de zéro, leurs valeurs sont séquentiellement 1,2,3,4,5,6. La liste des noeuds correspond à la valeur réciproque du troisième noeud 4.

 

exemple:

Compte tenu de la liste: 1-> 2-> 3-> 4-> 5, et k = 2.

La liste résultante 4-> 5.

Analyse: Le sujet de la demande est de trouver un pointeur vers les premiers noeuds k. Nous pouvons construire un pointeur tmp, laissez-le aller k fois, puis laissez le pointeur pointeur de tête tmp pour aller en même temps, quand tmp est vide, le pointeur de tête est également souhaitée

La complexité du temps de complexité de l'espace O (N) O (1)

/ * * 
 * Définition pour une liste simplement chaînée. 
 * ListNode struct { 
 * int val; 
 * ListNode * suivant; 
 * ListNode (int x): val (x), à côté (NULL) {} 
 *}; 
 * / 
Class Solution {
 publique : 
    ListNode * getKthFromEnd (* ListNode tête, int k) {
         int pre = 0 , last = 0 ; 
        ListNode * tmp = nouveau ListNode (); 
        tmp = tête;
        tandis que (pré! = k) { 
            tmp = tmp->  suivant;
            pre ++; 
        } 
        Tandis que (tmp =! NULL) { 
            tmp = tmp-> suivant; 
            tête = BANDEAUX> suivante; 
        } 
        Retourner la tête; 
    } 
};

 

Je suppose que tu aimes

Origine www.cnblogs.com/ken-liu/p/12545430.html
conseillé
Classement