Tony's Log

Algorithms, Distributed System, Machine Learning

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

Another Double pointer solution. 1A!

class Solution {
public:
    ListNode *removeNthFromEnd(ListNode *head, int n) {
        
        ListNode *p = NULL;
        ListNode *p0 = head;
        ListNode *p1 = head;
        ListNode *pre1 = NULL;
        while (--n)        p0 = p0->next;
        
        while (p0->next)
        {
            p0 = p0->next;
            pre1 = p1;
            p1 = p1->next;
        }
        if (p1 == head) p = head->next;
        else
        {
            pre1->next = p1->next;
            p = head;
        }
        return p;
    }
};
posted on 2014-07-23 11:41  Tonix  阅读(125)  评论(0)    收藏  举报