输入一个链表,输出该链表中倒数第k个结点。

    xiaoxiao2021-03-25  98

    题目: 输入一个链表,输出该链表中倒数第k个结点。

    两个指针,有一个先走k-1步。另一个从头开始,两个同时走,当一个到达末尾时,另一个就到了末尾k的位置。注意不足链表长度不为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* begin=pListHead; ListNode* pre=pListHead; int count=k-1; while(begin!=NULL&&count) { --count; begin=begin->next; } if(count>0||begin==NULL) return NULL; ListNode* temp=pListHead; while(begin!=NULL) { begin=begin->next; temp=pre; pre=pre->next; } return temp; } };
    转载请注明原文地址: https://ju.6miu.com/read-19623.html

    最新回复(0)