要求
示例
边界
思路
实现
1 struct ListNode { 2 int val; 3 ListNode *next; 4 ListNode(int x) : val(x), next(NULL) {} 5 }; 6 7 class Solution { 8 public: 9 ListNode* removeNthFromEnd(ListNode* head, int n) { 10 11 assert( n>=0 ); 12 ListNode* dummyHead = new ListNode(0); 13 dummyHead->next = head; 14 15 ListNode* p = dummyHead; 16 ListNode* q = dummyHead; 17 for( int i = 0 ; i < n + 1 ; i ++ ){ 18 assert( q ); 19 q = q->next; 20 } 21 22 while( q != NULL){ 23 p = p->next; 24 q = q->next; 25 } 26 27 ListNode* delNode = p->next; 28 p->next = delNode->next; 29 delete delNode; 30 31 ListNode* retNode = dummyHead->next; 32 delete dummyHead; 33 34 return retNode; 35 } 36 };
相关
[刷题] LeetCode 19 Remove Nth Node From End of List
原文:https://www.cnblogs.com/cxc1357/p/12640595.html