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

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

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

#include <iostream>
#include <memory>
using namespace std;

struct ListNode {
    int m_nKey;
    shared_ptr<ListNode> m_pNext;
    ListNode(): m_nKey(-1), m_pNext(nullptr) {}
    ListNode(int i): m_nKey(i), m_pNext(nullptr) {}
};

int main() {
    int N;
    while (cin >> N) {
        int temp;
        cin >> temp;
        shared_ptr<ListNode> head = make_shared<ListNode>(temp);
        shared_ptr<ListNode> list = head;
        for (int i = 0; i != N - 1; ++i) {
            cin >> temp;
            shared_ptr<ListNode> t = make_shared<ListNode>(temp);
            list->m_pNext = t;
            list = t;
        }
        int k;
        cin >> k;
        N -= k;
        for (int i = 0; i != N; ++i) {
            head = head->m_pNext;
        }
        cout << head->m_nKey<<endl;
    }


}
// 64 位输出请用 printf("%lld")

沙比题,还要我用一个while来处理它无厘头的输入,连多少组数据都不告诉我

全部评论

相关推荐

Aaso:挺好的,早挂早超生
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务