【数据结构】单链表查找倒数第K个元素

//设置两个指针,一个指针先出发,当两个指针的距离差为num后,开始同时移动。
//这样相当于小学的追击问题。
void findData_reciprocal(LinkList List, int num)
{
	LinkList Head = List;
	LinkList Tail = List;
	int cnt = 0;

	while (Head)
	{
		cnt++;
		if (cnt <= num)
		{
			Head = Head->next;
		}
		else
		{
			Head = Head->next;
			Tail = Tail->next;
		}
	}
	if (Tail == NULL)
	{
		cout << "没有这个元素!"<< endl;
		return;
	}
	cout << "倒数第" << num << "位:" << Tail->data << endl;
}

 

你可能感兴趣的:(【数据结构】单链表查找倒数第K个元素)