If interview did not mention n‘s situation, please ask.
It will affect the code. EX: n = 10, List : 1 2 3.
1 /** 2 * Definition for singly-linked list. 3 * struct ListNode { 4 * int val; 5 * ListNode *next; 6 * ListNode(int x) : val(x), next(NULL) {} 7 * }; 8 */ 9 class Solution { 10 public: 11 ListNode *removeNthFromEnd(ListNode *head, int n) { 12 if (!head) return head; 13 ListNode *result = new ListNode(0); 14 result->next = head; 15 ListNode *first = result, *second = result; 16 for (int i = 0; i < n; i++) { 17 first = first->next; 18 } 19 while (first->next) { 20 first = first->next; 21 second = second->next; 22 } 23 second->next = second->next->next; 24 return result->next; 25 } 26 };
LeetCode - Refresh - Remove Nth Node From End of List
原文:http://www.cnblogs.com/shuashuashua/p/4358816.html