LintCode-剑指Offer-(174)删除链表中倒数第n个节点

原创 2015年11月21日 20:43:53
/**
 * 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(head->next==NULL)//如果只有一个节点
            return NULL;
        ListNode* tmp=head;
        int count=0;
        while(tmp!=NULL){
            count++;
            tmp=tmp->next;
        }
        if(n==count)//如果要删除的是头结点
        {
            head=head->next;
            return head;
        }
        tmp=head;
        while(count>n+1){//否则找到节点,进行删除
            tmp=tmp->next;
            count--;
        }
        tmp->next=tmp->next->next;
        return head;
    }
};
版权声明:本文为博主原创文章,未经博主允许不得转载。

Lintcode 174.删除链表中倒数第n个节点

1.问题描述:给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。 2.解题思路:head先走了n步,这样head和temp之间差n个节点,之后head和temp一起往后移动,当head移动到...
  • wangyukl
  • wangyukl
  • 2017年03月27日 22:44
  • 273

删除链表中倒数第n个节点(LintCode)

题目来源:LintCode 原题地址:http://www.lintcode.com/zh-cn/problem/remove-nth-node-from-end-of-list/ ...
  • lyy_hit
  • lyy_hit
  • 2015年10月27日 16:03
  • 889

LintCode 删除链表中倒数第n个节点

给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点之后,这个链表将变成1->2->3->5->null. 这个题目相当于在“返回链表倒数第n个节点”的基础上增...
  • sinat_30440627
  • sinat_30440627
  • 2016年03月31日 18:58
  • 1112

Lintcode 166.链表倒数第n个节点

1.问题描述:找到单链表倒数第n个节点,保证链表中节点的最少数量为n 2.解题思路:创建两个指向head的指针p q,让p遍历,p先开始移动,p走到第n-1个节点是,之后p q 一起往后移动,这时候当...
  • wangyukl
  • wangyukl
  • 2017年03月27日 23:07
  • 285

LeetCode 从链表中删除倒数第N个节点

从单链表中删除倒数第N个节点,要求之遍历一遍lia
  • dddongdong
  • dddongdong
  • 2014年10月23日 11:24
  • 2117

【面试题】删除链表中倒数第n个节点

问题描述给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。样例 给出链表1->2->3->4->5->null和 n = 2.删除倒数第二个节点之后,这个链表将变成1->2->3->5->n...
  • zwhlxl
  • zwhlxl
  • 2015年07月28日 14:04
  • 1189

LintCode 找到单链表倒数第n个节点

给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1. 设置2个指针,当第一个指针从表头向前走到第n-1个节点时,第二个指针开始从表头出发。当第一个指针走到尾节点时,...
  • sinat_30440627
  • sinat_30440627
  • 2016年03月27日 19:59
  • 857

坚持坚持!用Java写出删除一个链表的倒数第N个节点,并返回头节点(N总是可达的)

这个题目有个前提条件就是N总是可达的,所以直接省去了一种情况(N不可达时的情况) 思路: 数据结构里面首先给定两个指针p和q分别都指向这个链表的头节点,然后若想求出这个链表的倒数第N个节点,方法就...
  • yangmm2048
  • yangmm2048
  • 2015年04月06日 11:23
  • 834

[算法学习]求出链表中倒数第n个节点

问题描述: 求出链表中倒数第n个节点。例如:1,2,3,4,5,倒数第2个是4 解法与分析: 用两个指针的方法。 1. 第一个指针起始位置在0位置,第二个指针起始位置在n-1位置。 ...
  • KesarChen
  • KesarChen
  • 2016年02月18日 13:55
  • 7742

删除链表中倒数第k个节点

1. 问题描述  给定一个单链表,删除它的倒数第k个节点。例如给定链表: 1→2→3→4→51\to 2 \to 3\to 4 \to 5,删除它的倒数第二个节点后变为 1→2→3→51\to 2 \...
  • Jeanphorn
  • Jeanphorn
  • 2015年07月20日 15:54
  • 2786
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LintCode-剑指Offer-(174)删除链表中倒数第n个节点
举报原因:
原因补充:

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