zoukankan      html  css  js  c++  java
  • 删除链表中倒数第n个节点

    给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。

     样例

    给出链表1->2->3->4->5->null和 n = 2.

    删除倒数第二个节点之后,这个链表将变成1->2->3->5->null.

    /**
     * Definition of ListNode
     * class ListNode {
     * public:
     *     int val;
     *     ListNode *next;
     *     ListNode(int val) {
     *         this->val = val;
     *         this->next = NULL;
     *     }
     * }
     */
    class Solution {
    public:
        /**
         * @param head: The first node of linked list.
         * @param n: An integer.
         * @return: The head of linked list.
         */
        ListNode *removeNthFromEnd(ListNode *head, int n) {
            // write your code here
            if(n==0) return head;
            int res=0;
            ListNode *p=head;
            while(p){
                res++;
                p=p->next;
            }
            ListNode *k=new ListNode(0);
            k->next=head;
            head=k;
            ListNode *q=head->next;
            for(int i=1;i<=res;i++){
                if(res-i+1==n){
                    k->next=q->next;
                    break;
                }
                k=q;
                q=q->next;
            }
            head=head->next;
            return head;
        }
    };
  • 相关阅读:
    codeforces 980A Links and Pearls
    zoj 3640 Help Me Escape
    sgu 495 Kids and Prizes
    poj 3071 Football
    hdu 3853 LOOPS
    hdu 4035 Maze
    hdu 4405 Aeroplane chess
    poj 2096 Collecting Bugs
    scu 4444 Travel
    zoj 3870 Team Formation
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/6623655.html
Copyright © 2011-2022 走看看