鏈表中的倒數第k個節點

題目描述

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

定義兩個指針,前一個先走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==nullptr || k==0)  
              return nullptr;  
            ListNode *first = pListHead;  
            for(int i = 1;i<k;i++)  
            {  
                first = first->next;  
                if(first==nullptr)  
                return nullptr;  
            }  
            ListNode *second = pListHead;  
            while(first->next)  
            {  
                first = first->next;  
                second = second->next;  
            }  
            return second;  
    }
};


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