Wednesday, June 12, 2013
Leetcode: Remove Nth Node From End of List in C++
Given a linked list, remove the nth node from the end of list and return its head.
Solution:
ListNode *removeNthFromEnd(ListNode *head, int n) {
if(!head)
return NULL;
ListNode* fast = head;
for(int i=0;i<n;i++)
fast = fast->next;
ListNode* slow = head;
ListNode* pre = slow;
if(!fast)
{
head = head->next;
delete slow;
return head;
}
while(fast)
{
fast = fast->next;
pre = slow;
slow = slow->next;
}
pre->next = slow->next;
delete slow;
return head;
}
Labels:
Array and List
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment