[La espada se refiere a la oferta 22] El k-ésimo nodo de la parte inferior de la lista vinculada (resuelto por el método de pila)

Ingrese una lista vinculada y genere el k-ésimo nodo desde la parte inferior de la lista vinculada. Para ajustarse a los hábitos de la mayoría de las personas, esta pregunta comienza a contar desde 1, es decir, el nodo final de la lista vinculada es el primer nodo desde abajo.

Por ejemplo: una lista vinculada tiene 6 nodos, comenzando desde el nodo principal, sus valores son 1, 2, 3, 4, 5, 6. El tercer nodo de la parte inferior de esta lista vinculada es el nodo con el valor 4.

Ejemplo:

Dada una lista vinculada: 1-> 2-> 3-> 4-> 5 y k = 2.

Regrese a la lista vinculada 4-> 5.

respuesta:

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public ListNode getKthFromEnd(ListNode head, int k) {
         Stack<ListNode> s=new Stack<>();
         if(head==null)
         return null;
         while(head!=null){
             s.push(head);
             head=head.next;
            
         }
         Stack<ListNode> s1=new Stack<>();
         
             if(!s.empty()){
             for(int i=0;i<k;i++){
               s1.push(s.peek());
               s.pop();
             }
         }
         return s1.peek();
    }
}

 

Supongo que te gusta

Origin blog.csdn.net/qq_44624536/article/details/114883898
Recomendado
Clasificación