import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { public ListNode removeNthFromEnd (ListNode head, int n) { // write code here //先找到倒数第n个节点 ListNode f = head; ListNode s = head; while(n>0){ if(f!=null){ f = f.next; }//此题不用考虑n大于链表长度 n--; } ListNode pre = new ListNode(0); pre.next = s; if(f==null){ //此时说明删除的是头节点,因为n最多等于链表长度 return head.next; } while(f!=null){ f=f.next; s=s.next; pre = pre.next; } pre.next = s.next; return head; } }