zoukankan      html  css  js  c++  java
  • Leetcode-19 Remove Nth Node From End of List

    #19.    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.

    Note: Given n will always be valid. Try to do this in one pass.

    题解:关键点在于把倒数第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) {
            if(n==0)
            {
                return head;
            }
            int cnt=0;
            ListNode* p=head;
            ListNode* ret=head;
            while(p!=NULL)
            {
                cnt++;
                p=p->next;
            }
            
            int pos=cnt-n-1;
            if(pos<0)
            {
                return head->next;
            }
            
            while(pos>0)
            {
                head=head->next;
                pos--;
            }
            head->next=head->next->next;
            return ret;
        }
    };
  • 相关阅读:
    admob 广告增加
    流量统计
    施乐 著名的帕洛阿尔托研究中心
    android Launcher
    系统集成
    jad 批量反编译class文件
    eclipse classes 文件不见
    悬浮窗不可触摸
    ios 相关
    android 屏幕切换
  • 原文地址:https://www.cnblogs.com/fengxw/p/6082835.html
Copyright © 2011-2022 走看看