您好,登錄后才能下訂單哦!
題目:輸入一個鏈表,輸出該鏈表中倒數第k個結點。
思路:
兩個指針,兩個指針距離k個結點,當走在前面的指針已經走到NULL,后面的指針剛好走到倒數第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) { //邊界條件1:pListHead指向空即為空鏈 //邊界條件2:k<=0,倒數的大小為正 if(pListHead==NULL||k<=0) { return NULL; } ListNode* pcur1=pListHead; ListNode *pcur2=pListHead ; while(k>0) { k--; //邊界條件3:鏈表不夠長,沒有倒數第k個結點 if(pcur1!=NULL) { pcur1=pcur1->next; } else { return NULL; } } while(pcur1!=NULL) { pcur1=pcur1->next; pcur2=pcur2->next; } return pcur2; } };
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。