Remove Nth Node From End of List

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Remove Nth Node From End of List相关的知识,希望对你有一定的参考价值。

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个结点了
技术分享
/**
 * 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* ans=new ListNode(0);
        ans->next=head;
        ListNode* temp=ans;
        for(int i=0;i<n;i++)
            head=head->next;
        while(head!=NULL){
            temp=temp->next;
            head=head->next;
        }
        temp->next=temp->next->next;
        return ans->next;
    }
};
View Code

 

以上是关于Remove Nth Node From End of List的主要内容,如果未能解决你的问题,请参考以下文章

Remove Nth Node From End of List

19. Remove Nth Node From End of List

Remove Nth Node From End of List

Remove Nth Node From End of List

LC_19. Remove Nth Node From End of List

leetcode:Remove Nth Node From End of List