给出链表1->2->3->4->5->null和 n = 2.
删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.
istNode *removeNthFromEnd(ListNode *head, int n) {
// write your code here
ListNode *a, *b, *pre;
if ( head == NULL) {
return NULL;
}
a = head;
b = head;
for ( int i = 0; i < n-1; i++ ) {
if ( a -> next != NULL ) {
a = a -> next;
} else {
return NULL;
}
}
while ( a-> next != NULL ) {
a = a -> next;
pre = b;
b = b ->next;
}
if ( b == head ) {
head = head -> next;
} else {
pre ->next = pre -> next -> next;
}
return head;
}
};