鏈表中導數第K個結點(快慢指針)

點擊打開鏈接題目描述

輸入一個鏈表,輸出該鏈表中倒數第k個結點。

快慢指針的介紹

快慢指針中的快慢指的是移動的步長,即每次向前移動速度的快慢。例如可以讓快指針每次沿鏈表向前移動2,慢指針每次向前移動1次。

判斷單鏈表是否爲循環鏈表

在有序鏈表中尋找中位數

如果鏈表爲存在環,如果找到環的入口點?


/*
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||k<=0 )
          return NULL;
      
ListNode* nptr=pListHead;
ListNode* kptr;
for ( unsigned int i = 0; i < k; ++i ) {
if( nptr!=NULL )
               nptr = nptr->next;
            else
                return NULL;
}


kptr = pListHead;
while ( nptr!= NULL ) {
kptr = kptr->next;
nptr = nptr->next;

}
        return kptr; 
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章