leetcode-Remove Nth Node From End of List-19

原创 2016年05月30日 23:46:25

删除链表的倒数第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(head==NULL) return NULL;
        ListNode* p=head;
        ListNode* q=head;
        ListNode* pre=NULL;
        int i=n-1;
        while(i--){
            p=p->next;
        }
        // while(p!=NULL){//这里这样做会re,因为要p先后移q和pre才能移动不然就可能越界
        //     pre=q;
        //     q=q->next;
        //     p=p->next;
        // }
        while(p->next!=NULL){
            pre=q;
            q=q->next;
            p=p->next;
        }
        if(pre==NULL){
            head=q->next;
            delete q;
        }
        else{
            pre->next=q->next;
            delete q;
        }
        return head;
    }
};


版权声明:本文为博主原创文章,未经博主允许不得转载。

Remove Nth Node From End of List -- LeetCode

原题链接: http://oj.leetcode.com/problems/remove-nth-node-from-end-of-list/  这道题是链表基本操作,主要问题就是如何得到链表的倒数第...
  • linhuanmars
  • linhuanmars
  • 2014年02月23日 23:39
  • 5896

LeetCode 19 : Remove Nth Node From End of List (Java)

解题思路:一开始我的做法是先遍历一遍取得长度,然后长度减去n就知道要删除正着数第几个元素,结果题目要求one pass。那就只能用两个指针,一个快指针先走n步,一个慢指针从头开始走,这样当快指针走到尾...
  • changetocs
  • changetocs
  • 2015年12月01日 20:02
  • 947

[LeetCode] 019. Remove Nth Node From End of List (Easy) (C++/Python)

[LeetCode] 019. Remove Nth Node From End of List (Easy) (C++/Python)
  • hcbbt
  • hcbbt
  • 2015年03月04日 19:26
  • 2279

LeetCode: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...
  • yao_wust
  • yao_wust
  • 2014年11月18日 10:08
  • 3913

[leetcode] 19. Remove Nth Node From End of List python实现【easy】

Remove Nth Node From End of List My Submissions QuestionEditorial Solution Given a linked list, r...
  • zl87758539
  • zl87758539
  • 2016年06月14日 21:50
  • 683

LeetCode19——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, ...
  • booirror
  • booirror
  • 2015年02月05日 15:07
  • 1160

【LeetCode-面试算法经典-Java实现】【019-Remove Nth Node From End of List(移除单链表的倒数第N个节点)】

【019-Remove Nth Node From End of List(移除单链表的倒数第N个节点)】【LeetCode-面试算法经典-Java实现】【所有题目目录索引】原题  Given a l...
  • DERRANTCM
  • DERRANTCM
  • 2015年07月22日 07:24
  • 2142

LeetCode 19. Remove Nth Node From End of List 解题报告

19. Remove Nth Node From End of List My Submissions Question Total Accepted: 94847 Total ...
  • bruce128
  • bruce128
  • 2016年02月20日 14:58
  • 832

【LeetCode】19 Remove Nth Node From End of List (c++实现)

Given a linked list, remove the nth node from the end of list and return its head. For example,    G...
  • styshoo
  • styshoo
  • 2015年07月22日 10:29
  • 371

[C语言][LeetCode][19]Remove Nth Node From End of List

题目Remove Nth Node From End of List Given a linked list, remove the nth node from the end of list an...
  • Timsley
  • Timsley
  • 2016年03月07日 23:05
  • 891
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:leetcode-Remove Nth Node From End of List-19
举报原因:
原因补充:

(最多只允许输入30个字)