zoukankan      html  css  js  c++  java
  • 链表中倒数第K个节点

    问题描述:

    找出链表中倒数第K个节点

    思路分析:

    用两个指针,一前一后,保持k个距离,前面的指针移动到末尾,后面的指针就刚好直到第k个节点,

    要考虑到k为0,倒数第k个节点不存在的情况。

    参考代码:

    ListNode* FindKthToTail(ListNode * pHead,unsigned int k)
    {
        if (NULL == pHead || k == 0)
        {
            return NULL;
        }

        ListNode *pAhead = pHead;

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

        ListNode *pBehind = pHead;
        while(pAhead->m_pNext != NULL)
        {
            pAhead = pAhead->m_pNext;
            pBehind = pBehind->m_pNext;
        }

        return pBehind;
    }

  • 相关阅读:
    [JZOJ3388] 绿豆蛙的归宿

    [JZOJ3464] 秀姿势
    [JZOJ3462] 休息
    [JZOJ3461] 小麦亩产一千八
    [JZOJ3509] 倒霉的小C
    [JZOJ1267] 路障
    CF52C Circular RMQ
    P4162 [SCOI2009]最长距离
    P4047 [JSOI2010]部落划分
  • 原文地址:https://www.cnblogs.com/Mr-Zhong/p/4179677.html
Copyright © 2011-2022 走看看