
解题思路:这题的思路就是让一个指针先走n步,然后再用另一个指针同步走,直到先走的指针的next为null,然后后面的指针的后一个指针删掉即可。
/*** 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 removeNthFromEnd(ListNode head, int n) {ListNode fast = new ListNode(0,head);ListNode slow = new ListNode(0,head);ListNode q = slow;while(n>0){fast = fast.next;n--;}while(fast.next!=null){fast = fast.next;slow = slow.next;}slow.next = slow.next.next;return q.next;}
}