只爱洗碗 2021-11-11 20:36 采纳率: 89.5%
浏览 131
已结题

输出单向链表中倒数第k个结点

输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第1个结点为链表的尾指针。

链表结点定义如下:

struct ListNode

{

int m_nKey;

ListNode* m_pNext;

};

正常返回倒数第k个结点指针,异常返回空指针

数据范围:链表长度满足 , ,链表中数据满足

本题有多组样例输入。

img

  • 写回答

1条回答 默认 最新

  • 从善若水 5G/6G通信领域优质创作者 2021-11-11 20:36
    关注
    
    //调试时,显示数组越界等问题,原因是该题倒数第0个结点比较扯,给出结果为0,题意并未提示 
    #include<iostream>
    using namespace std;
    struct ListNode{
        int val;
        ListNode* next;
        ListNode(int x) : val(x), next(NULL){}
    };
    int main(){
        int nums;
        while(cin >> nums){
            ListNode *pHead = new ListNode(-1);
            ListNode *p = pHead;
            for(int i = 0; i < nums; ++i){
                int data;
                cin >> data;
                ListNode *q = new ListNode(data);
                p->next = q;
                p = p->next;
            }
            int Kth;
            cin >> Kth;
            p = pHead;
            if(Kth == 0)  // 边界测试
                cout << "0" << endl;
            else if(nums-Kth >= 0){
                for(int i = 0; i <= nums-Kth; ++i)
                    p = p->next;
                cout << p->val << endl; 
            }
            else
                cout << "NULL" << endl; 
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 已采纳回答 11月11日
  • 创建了问题 11月11日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器