leetcode Remove Nth Node From End of List

来源:互联网 发布:windows 8.1工业版 编辑:程序博客网 时间:2024/05/17 20:34

只遍历一遍的做法。

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public:    ListNode *removeNthFromEnd(ListNode *head, int n) {        ListNode *p=head,*before,*del;        for(int i=0;i<n;i++)        {            p=p->next;        }        if(!p)            return head->next;        p=p->next;        del=head->next;        if(!p)        {            head->next=del->next;            return head;        }        before=head;        while(p)        {            before=before->next;            del=del->next;            p=p->next;        }        before->next=del->next;        return head;    }};


0 0
原创粉丝点击