LeetCode-19-Remove Nth Node From End of List(C语言实现)

来源:互联网 发布:网络带给我们的好处 编辑:程序博客网 时间:2024/06/16 14:20
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */
struct ListNode* removeNthFromEnd(struct ListNode* head, int n) {
    int i;
    struct ListNode *p, *q, *tmp;
    p = head;
    q = head;
    for(i = 0; i < n; ++i)
        q = q -> next;
    if(q == NULL)
    {
        tmp = p;
        p = p -> next;
        free(tmp);
        return p;
    }
    while(q -> next != NULL)
    {
        p = p-> next;
        q = q -> next;
    }
    tmp = p -> next;
    p -> next = tmp -> next;
    free(tmp);
    return head;
}
阅读全文
0 0
原创粉丝点击