* 链表中倒数最后k个结点 * 思路:选2个节点,第一个节点走了k-1, 第二个节点才与第一个节点一起走,当第一个节点走到尾节点,第二个节点走到 * 倒数第k个节点。
ListNode* FindKthToTail(ListNode* pHead, int k) { if (pHead == nullptr) { return nullptr; } ListNode *pFirstNode = pHead; // 慢指针与快指针距离为K ListNode *pSecondNode = pHead; for(int i = 0; i < k; i++) { if(pFirstNode != nullptr) { pFirstNode = pFirstNode->next; } else { return nullptr; } } // 快指针继续向后运动直到结尾 while(pFirstNode != nullptr){ pFirstNode = pFirstNode->next; pSecondNode = pSecondNode->next; } return pSecondNode; }