public ListNode removeNthFromEnd (ListNode head, int n) {
if(head == null) return null;
ListNode temHead = new ListNode(-1);
temHead.next = head;
ListNode p = temHead, q = temHead;
int count = n;
while(count > 0){
q = q.next;
count --;
}
while(q.next != null){
q = q.next;
p = p.next;
}
if(p.next != null) p.next = p.next.next;
else p.next = null;
return temHead.next;
} 
京公网安备 11010502036488号