注意分为两种情况,一种是刚开始就删到头的情况,一种是删的不是头的情况。
/**
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
class Solution {
public:
/**
*
* @param head ListNode类
* @param n int整型
* @return ListNode类
*/
ListNode* removeNthFromEnd(ListNode* head, int n) {
// write code here
if(!head){
return NULL;
}
ListNode* temp= head;
int length=0;
while(head){
length++;
head = head->next;
}
head = temp;
if(0 == length-n){
return head->next;
}
for(int i = 0; i<length-n;i++){
if(i==length-n-1){
temp->next = temp->next->next;
}
temp = temp->next;
}
return head;
}
};
京公网安备 11010502036488号