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个节点

给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。 注意事项:链表中的节点个数大于等于n 样例 给出链表1->2->3->4->5->null和 n = 2. 删除倒数第二个节点...

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

给定一个链表,删除链表中倒数第n个节点,返回链表的头节点。您在真实的面试中是否遇到过这个题? Yes 样例 给出链表1->2->3->4->5->null和 n = 2.删除倒数第二个节点之后,这...

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

给出链表 3->2->1->5->null和n = 2,返回倒数第二个节点的值1. 设置2个指针,当第一个指针从表头向前走到第n-1个节点时,第二个指针开始从表头出发。当第一个指针走到尾节点时,...

【剑指offer】面试题22:链表中的倒数第k个节点

题目输入一个链表,输出该链表中倒数第k个节点。 为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如,一个链表有6个节点,从头结点开始,它们的值以此是1、2、3、4、5...

剑指Offer-15-链表中的倒数第k个节点

题目:输入一个链表,查找该链表中的倒数第k个结点 比如链表为{1,2,3,4},则倒数第2个节点为3。 思路: 使用两个指针,第1个指针先走k-1步,然后,两个指针同时前进,知道第一个指针走到链...

剑指offer 面试题15—链表中倒数第k个节点

基本思想: 解法一:O(n^2) 先算出链表的长度n,然后倒数第k个结点就是顺序的第(n-k+1)个数,不过这样需要2次遍历链表,第一次统计出链表中节点的个数n,第二次就能找到倒数第k个节点。 ...

【剑指offer】链表倒数第k个节点

在Cracking the Code Interview上做过了一次,这次在九度OJ上测试,AC。 题目描述: 输入一个链表,输出该链表中倒数第k个结点。 (hint: 请务必使用链表。) 输入: 输...

剑指offer面试题15-链表中倒数第k个节点

题目: 输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点。 例如一个链表有6个节点,从头结点开始他们的值依次是1、2、3、4、5、6,...

剑指offer(16):链表中倒数第k个节点

题目描述输入一个单链表,输出该单链表中倒数第k个结点。

剑指offer-链表中倒数第K个节点

问题题目:[链表中倒数第K个节点]思路利用递归的特点,不过我倒是没有对算法进行优化,没有能优化到O(K)。 因为我是递归到底部之后,再回来的时候判断K。所以无论如何都要走回来。代码/* struct...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:LintCode-剑指Offer-(174)删除链表中倒数第n个节点
举报原因:
原因补充:

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