//一审题才发现,<span style="color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;">Try to do this in one pass. 是双指针的思想。但这样代码运行速度比平均速度要快</span>
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) {
* val = x;
* next = null;
* }
* }
*/
public class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
//除去第n个点,n-1的next就要变为n-1的next的next
//特殊情况,除掉第一个点和除掉最后一个点
int j = 1;
ListNode A =head;
while(A.next != null) {
j++;
A = A.next;
}
n = j + 1 - n;
if(n==1) return head.next;
A = head;
int i = 1;
while(i < n-1)
{
A = A.next;
i++;
}
A.next = A.next.next;
return head;
}
}
/*
Input: {1,2}, 1
Output: {2}
Expected: {1}
看错了,尼玛是nth node from the end
*/
//一审题才发现,Try to do this in one pass. 是双指针的思想。但这样代码运行速度比平均速度要快/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { *