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 };

 

posted on 2015-03-23 05:24  keepshuatishuati  阅读(139)  评论(0编辑  收藏  举报