剑指offer练习一 输入一个链表,输出该链表中倒数第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) {
            int i=0;
        bool flag=false;
        ListNode* ep=pListHead;
        ListNode* lp=pListHead;
        while(lp!=NULL)
            {
                lp=lp->next;
                i++;
                if(i>k)
                {
                    
                    ep=ep->next;
                }
            }
        if (i<k)return NULL;
        return ep;
    }
};


猜你喜欢

转载自blog.csdn.net/qq_34249583/article/details/79226262