本方法は、第1の位置に前進ステップk、遅いポインタの指を行くために、高速の手を両手を使用することで、ポインタが素早く遅い終了位置、ポインタの位置に行ったとき、彼らは、同時に前進しますこれは、k番目のノードの逆数です。
//最後から二番目のリストノードK
の#include <iostreamの>
する#include <リスト>
使用して名前空間STD。
int型the_k_back_node(リスト<整数> LIST1、INT K)
{
IF((!list1.empty())&&(k <= list1.size())&&(K> 0))
{
オートit_fast = list1.begin() ;
自動it_slow = list1.begin()。
一方、(k--)
{
++ it_fast。
}
ながら(!it_fast = list1.end())
{
++ it_fast。
++ it_slow;
}
* it_slowを返します。
}
NULLを返します。
}
INTのmain()
{
int型K。
cinを>> K;
リスト<整数>リスト1。
以下のために(INT I 0 =; I <= 10; I ++)
{
list1.push_back(I)。
}
COUT << the_k_back_node(LIST1、K)<< ENDL。
システム(「一時停止」)。
0を返します。
}