1. public class Solution {
    2. public ListNode removeNthFromEnd(ListNode head, int n) {
    3. if(n == 0){
    4. return head;
    5. }
    6. int size = 0;
    7. ListNode cur = head;
    8. while (cur != null) {
    9. size++;
    10. cur = cur.next;
    11. }
    12. ListNode dummyHead = new ListNode();
    13. dummyHead.next = head;
    14. ListNode prev = dummyHead;
    15. for (int i = 0; i < size - n; i++) {
    16. prev = prev.next;
    17. }
    18. prev.next = prev.next.next;
    19. return dummyHead.next;
    20. }
    21. }