Delete middle of the linked list

Do it

Solution:

Time: O(n)

/**
 * Definition for singly-linked list.
 * class ListNode {
 *     public int val;
 *     public ListNode next;
 *     ListNode(int x) { val = x; next = null; }
 * }
 */
public class Solution {
    public ListNode solve(ListNode A) {
        ListNode slow = A;
        ListNode fast = A;
        while (fast != null && fast.next != null) {
            ListNode prev = slow;
            slow = slow.next;
            fast = fast.next.next;
            if (fast == null || fast.next == null) {
                prev.next = slow.next;
            }
        }
        return A;
    }
}