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();
}
}