单链表倒数第n个结点

使用两个指针it1和it2,初始相差it1指向第一个结点,it2与it1相差n个结点,然后同时1后移,直到it2到NULL,则it1即为倒数第n个结点。

#include <iostream>
#include <forward_list>             //单向链表,没有指向最后一个元素的指针

using namespace std;

int main(int argc, char** argv)
{
    //返回倒数第n=2个迭代器的元素
    int n = 2;
    forward_list<int> l = { 1,2,3,4 };

    forward_list<int>::iterator it1 = l.begin(), it2 = it1;

    while (n--)
    {
        it2++;                      //it2与it1相差n个位置
    }

    while (it2 != l.end())
    {
        it2++;
        it1++;
    }

    cout << *it1 << endl;

    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容