标签:
Title:
Given a linked list, remove the nth node from the end of list and return its head.
For example,
Given linked list: 1->2->3->4->5, and n = 2. After removing the second node from the end, the linked list becomes 1->2->3->5.
思路: 先让一个指针走n步,在让另一个指针一起向前。需要注意n的取值。有可能直接删除头指针,需要判断
class Solution { public: ListNode *removeNthFromEnd(ListNode *head, int n) { if (0 == n) return head; int c = 0; ListNode *first = head, *second=head; while (c++ < n){ first = first->next; } if (first == NULL){ return head->next; } while ( first->next != NULL){ first = first->next; second = second->next; } ListNode *p = second->next; second->next = p->next; delete p; return head; } };
LeetCode: Remove Nth Node From End of List
标签:
原文地址:http://www.cnblogs.com/yxzfscg/p/4421307.html