【链表练习】输入一个链表,输出该链表中倒数第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==NULL)//空判断
            return NULL;
        int n = 0;
        ListNode* list = pListHead;
        while(list!=NULL){
            n++;
            list = list->next;
        }
        if(n<k)
            return NULL;
        ListNode* p = pListHead;
        for(int i = 0;i<n-k;i++){
            p = p->next;
        }   
        return p;
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_45845039/article/details/107872031