题解 | #输出单向链表中倒数第k个结点#

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

https://www.nowcoder.com/practice/54404a78aec1435a81150f15f899417d

#include <iostream>
#include <malloc.h>
#include <stack>
using namespace std;

struct ListNode
{
    int m_nKey;
    ListNode* m_pNext;
};

int main() {
    int num;
    while (cin >> num) { // 注意 while 处理多个 case
        ListNode *lis = (ListNode*)malloc(sizeof(ListNode));
        ListNode *pt = lis;
        pt->m_nKey=-1;
        pt->m_pNext=nullptr;
        for(int i=0;i<num;++i){
            int in;
            cin>>in;
            ListNode *temp = (ListNode*)malloc(sizeof(ListNode));
            temp->m_nKey = in;
            temp->m_pNext=nullptr;
            pt->m_pNext=temp;
            pt=pt->m_pNext;
        }
        pt=lis;
        stack<int> sk;
        while(true){
            ListNode* tp = pt;
            pt=pt->m_pNext;
            free(tp);
            if(pt!=nullptr){sk.push(pt->m_nKey);}
            else{break;}
        }
        int del;
        cin>>del;
        for(int i=0;i<del-1;++i){
            sk.pop();
        }
        cout<<sk.top()<<endl;
    }
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

点赞 评论 收藏
分享
03-29 18:59
运城学院 Java
程序员小白条:咱们要对自己的简历和学历有清晰的认知,不要动不动就大厂了....都26届了,没实习还想着大厂,唉
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务