- 判断链表是否为空
if (pHead == NULL) return pHead;
- 采用快慢指针
ListNode* fast = pHead;
ListNode* slow = pHead;
- 判断k是否大于链表长度
ListNode* dummy = NULL;
while (k--) {
fast = fast->next;
if (fast == NULL && k) return dummy;
}
- 当快指针移动到末尾时,返回慢指针位置
while (fast) {
fast = fast->next;
slow = slow->next;
}
return slow;