劍指offer--連結串列中倒數第k個結點
阿新 • • 發佈:2018-12-13
題目描述
輸入一個連結串列,輸出該連結串列中倒數第k個結點。
解析
可以先便利一遍求出連結串列總長,再遍歷第二遍求出結點。
或者定義兩個指標,一個先遍歷到第k個結點,再兩個一起往後遍歷,前一個為null時,後一個就是題目要求的結點。
class Solution { public: ListNode* FindKthToTail(ListNode* pListHead, unsigned int k) { if(k<=0||pListHead==NULL)return NULL; ListNode *p = pListHead; ListNode *q; for(int i=0;i<k-1;++i){ if(p->next==NULL)return NULL; p = p->next; } p = p->next; q = pListHead; while(p){ p = p->next; q = q->next; } return q; } };