40.链表中的倒数第k个结点

思路:
链表的题目,要么内存逻辑代替法、要么快慢指针、要么先后指针,要么多指针,本题可以用先后指针(一个先出发,一个后出发)

代码:

/*
struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
            val(x), next(NULL) {
    }
};*/
class Solution {
public:
    ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {
        if(pListHead==NULL)
            return NULL;
        ListNode *forward=pListHead;
        ListNode *target=pListHead;
        for(int i=0;i<k;++i){
            if(forward==NULL)
                return NULL;
            forward=forward->next;
        }
        
         while(forward){
             forward=forward->next;
             target=target->next;
         }
        return target;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容