您的位置:首页 > 其它

链表中倒数第k个结点

2016-07-29 17:25 288 查看


题目描述

输入一个链表,输出该链表中倒数第k个结点。

/* 

struct ListNode { 

    int val; 

    struct ListNode *next; 

    ListNode(int x) : 

            val(x), next(NULL) { 

    } 

}; 

*/  

class Solution {  

public:  

    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) 

    {  

        if(NULL==pListHead) return NULL;  

        int n=0;  

        ListNode* pCur=pListHead;  

        while(pCur!=NULL)

        {  

            ++n;  

            pCur=pCur->next;  

        }  

        if(n<k) return NULL;  

        pCur=pListHead;  

        n=n-k;  

        while(n--){  

            pCur=pCur->next;  

        }  

        return pCur;  

    }  
}; 

还有一个方法就是定义两个指针,指针一走到第k个节点,指针2指向头结点,两个指针一起往前走,指针1走到尾后指针2指向倒数第k个
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: