嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2015-06-22 2469 次浏览 标签 : 计算机基础剑指 offer数据结构

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

链表结果定义如下:

struct ListNode{
    int m_nVaule;
    ListNode* m_pNext;
};
ListNode* FindNode(ListNode* pListHead,unsigned int k){
    if(pListHead == NULL || k == 0){
        return NULL;
    }

    ListNode* pAhead = pListHead;
    ListNode* pBehind = NULL;

    for (unsigned int i = 0; i < k -1; ++i) {
        if(pAhead->m_pNext != NULL){
            pAhead = pAhead->m_pNext;
        }else{
            return NULL;
        }
    }

    pBehind = pListHead;
    
    while(pAhead->m_pNext != NULL){
        pAhead = pAhead->m_pNext;
        pBehind = pBehind->m_pNext;
    }

    return pBehind;
}

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表