Dada una head
lista no vacía con enlaces simples cuyo nodo principal es , devuelve el nodo medio de la lista enlazada.
Si hay dos nodos intermedios, devuelve el segundo nodo intermedio.
el código se muestra a continuación:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode() {}
* ListNode(int val) { this.val = val; }
* ListNode(int val, ListNode next) { this.val = val; this.next = next; }
* }
*/
class Solution {
public ListNode middleNode(ListNode head) {
ListNode fast=head;
ListNode low=head;
while (fast!=null&&fast.next!=null){
low=low.next;
fast=fast.next.next;
}
return low;
}
}
Logrando el resultado: