找出链表倒数第k个结点

链表中倒数第k个结点

https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13&tqId=11167&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
public:
    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
       struct ListNode* first;
       struct ListNode* second;
       first=pListHead;
       for(int i=0;i<k;i++)
       {
           if(!first) return nullptr;
           else  first=first->next;
       }
       second=pListHead;
       while(first!=NULL)
       {
           first=first->next;
           second=second->next;
       }
      return second;   
    }
};

思路不难,两个指针,第一个指针先走K步,然后两个一起走,先走的那个到了结尾空指针,后面那个也到了倒数第K个
坑的是它可能没有倒数第K个指针
啊啊啊啊啊,白提及了那么多次

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务