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 enlazada es el penúltimo nodo.
Por ejemplo, una lista enlazada tiene 6 nodos, comenzando desde el nodo principal, sus valores son 1, 2, 3, 4, 5, 6 en orden. El penúltimo nodo de esta lista enlazada es el nodo con el valor 4.
el código se muestra a continuación:
/**
* 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) {
ListNode node1=head;
ListNode node2=head;
for (int i = 0; i < k; i++) {
node1=node1.next;
}
while (node1!=null){
node1=node1.next;
node2=node2.next;
}
return node2;
}
}
Logrando el resultado: