题意理解:
删除链表中倒数第n个数;
题目分析:
1. 确定链表长度;
2. 找到需要删除对象的位置;
解题代码:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
ListNode* removeNthFromEnd(ListNode* head, int n) {
int size=0;
ListNode* p=head;
while(p!=NULL){
size++;
p=p->next;
}
int delPos=size-n;
if(delPos==0){
return head->next;
}
p=head;
for(int i=2;i<=size-n;i++){
p=p->next;
}
ListNode* t=p->next;
if(t->next==NULL){
p->next=NULL;
}else{
p->next=t->next;
}
return head;
}
};