链表中倒数第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) {
        ListNode *move = pListHead;
        int step = k-1;
        while(move&&step)
        {
            step--;
            move = move->next;
        }
        if(move == NULL)
            return NULL;
        while(move->next)
        {
            move = move->next;
            pListHead = pListHead->next;
        }
        return pListHead;
    }
};

 

你可能感兴趣的:(剑指offer)