《剑指offer》——寻找链表中倒数第k个结点

来源:互联网 发布:安能 淘宝 编辑:程序博客网 时间:2024/06/15 14:55
struct ListNode {    int val;    struct ListNode *next;    ListNode(int x) : val(x), next(NULL){}}; ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) {     if(pListHead == NULL || k <= 0)//链表为空或k值无意义         return NULL;     ListNode *pFirst, *pSecond;     pFirst = pListHead;     pSecond = pListHead;//pListHead指向头结点     for(int i = 0; i < k - 1; i++)//pFirst先走k-1步     {         //如果k的值大于链表的长度,pFrist会越过尾结点         if(pFirst -> next == NULL)             return NULL;         else            pFirst = pFirst -> next;     }     //两个指针一起走,当pFirst指向尾结点时,pSecond指向倒数第k个结点     while(pFirst -> next != NULL)     {         pFirst = pFirst -> next;         pSecond = pSecond -> next;     }     return pSecond; }
0 0
原创粉丝点击