题解 | #链表中倒数最后k个结点#

链表中倒数最后k个结点

http://www.nowcoder.com/practice/886370fe658f41b498d40fb34ae76ff9

经典题目

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 *	ListNode(int x) : val(x), next(nullptr) {}
 * };
 */
class Solution {
public:
    ListNode* FindKthToTail(ListNode* pHead, int k) {
      if (k <= 0 || pHead == nullptr) { // 边界
        return nullptr;
      }
      
      ListNode *fast = pHead, *slow = pHead;
      
      for (int i = 1; i < k && fast; i++) {
        fast = fast->next;
      }
      
      if (fast == nullptr) {
        return nullptr;
      }
      
      while (fast->next) {
        fast = fast->next;
        slow = slow->next;
      }
      
      return slow;
    }
};
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务