zoukankan      html  css  js  c++  java
  • 剑指OFFER之链表中倒数第k个结点

    题目描述:

    输入一个链表,输出该链表中倒数第k个结点。
    (hint: 请务必使用链表。)

    输入:

    输入可能包含多个测试样例,输入以EOF结束。
    对于每个测试案例,输入的第一行为两个整数n和k(0<=n<=1000, 0<=k<=1000):n代表将要输入的链表元素的个数,k代表要查询倒数第几个的元素。
    输入的第二行包括n个数t(1<=t<=1000000):代表链表中的元素。

    输出:

    对应每个测试案例,
    若有结果,输出相应的查找结果。否则,输出NULL。

    样例输入:
    5 2
    1 2 3 4 5
    1 0
    5
    样例输出:
    4
    NULL


    Code:
    #include <iostream>
     
    using namespace std;
     
    struct Node{
        int data;
        Node *next;
    };
     
     
    /*思想:设置2个指针L_head和L_behind,初始化时都指向头
    结点的后一个结点(L->next),令L_head先走k-1步,L_head和L_behind
    再一起向后遍历,当L_head到了最后一个结点的时候,L_behind
    此时就指向倒数第k个结点*/
    int main()
    {
        int n,k;
        while(cin>>n>>k){
            Node *L=new Node;
            L->next=NULL;
            Node *pre=L;
            Node *L_head,*L_behind;
            int cnt;
            for(int i=0;i<n;i++){
                Node *p=new Node;
                p->next=NULL;
                int x;
                cin>>x;
                p->data=x;
                pre->next=p;
                pre=p;
            }
            if(k==0||k>n){
                cout<<"NULL"<<endl;
                continue;
            }
            L_head=L_behind=L->next;
            cnt=1;
            while(cnt<=k){
                L_head=L_head->next;
                ++cnt;
            }
            while(L_head!=NULL){
                L_head=L_head->next;
                L_behind=L_behind->next;
            }
            cout<<L_behind->data<<endl;
        }
        return 0;
    }
     
    /**************************************************************
        Problem: 1517
        User: lcyvino
        Language: C++
        Result: Accepted
        Time:200 ms
        Memory:3104 kb
    ****************************************************************/



  • 相关阅读:
    powershell查看版本信息
    Vue资源
    【踩坑经历】SQLSTATE[HY000] [2002] Connection refused
    获取文件指定行数的内容
    《Redis高阶应用》讲座总结
    Lua入门记录
    使用docker搭建OpenResty开发环境
    基于Openresty+Naxsi的WAF:从小白到实践
    获取指定开始行数$start,跨度$limit的文件内容
    获取文件的行数
  • 原文地址:https://www.cnblogs.com/Murcielago/p/4143258.html
Copyright © 2011-2022 走看看