首页 > 代码库 > 寻找单向链表的倒数第k个节点

寻找单向链表的倒数第k个节点

题目:

输入一个单向链表,输出这个单向链表的倒数第k个节点


template<class T>
class ListNode
{
public:
	T Data;
	ListNode<T> *pNext;
	ListNode<T> * FindKNode(ListNode<T> * pHead, int k);
};

template<class T>
ListNode<T> * ListNode<T>::FindKNode(ListNode<T> * pHead, int k)
{
	ListNode<T> *tmp = pHead;
	ListNode<T> *nodeK = pHead;
	int i = 0;
	while (tmp)
	{
		if (i >= k)
		{
			nodeK = nodeK->pNext;
		}
		i++;
		tmp = tmp->pNext;
	}
	if (i < k)
	{
		return nullptr;
	}
	return nodeK;
}




寻找单向链表的倒数第k个节点