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

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

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

#include <stdio.h>
#include <string.h>
typedef struct ListNode {
    int m_nKey;
    struct ListNode* m_pNext;
} ListNode, *List;

int main() {
    List s;
    struct ListNode* p, *r;
    int n;
    while (scanf("%d", &n) != EOF) {
        int i;
        s = (List)malloc(sizeof(ListNode));
        s->m_pNext = NULL;
        r = s;
        for (i = 0; i < n; i++) {
            p = (ListNode*)malloc(sizeof(ListNode));
            scanf("%d", &p->m_nKey);
            p->m_pNext = NULL;
            r->m_pNext = p;
            r = p;
        }
        ListNode* fast, *slow;
        int k;
        fast = s;
        slow = s;
        scanf("%d", &k);
        while (k--) {
            fast = fast->m_pNext;
        }
        while (fast != NULL) {
            fast = fast->m_pNext;
            slow = slow->m_pNext;
        }
        printf("%d\n", slow->m_nKey);
        ListNode* fre;
        while (s != NULL) {
            fre = s->m_pNext;
            free(s);
            s = fre;
        }
    }
    return 0;
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-16 18:05
何尝不是一种学历歧视呢
码农索隆:楼主明确拒绝,并说明拒绝原因了,这hr倒是挺忠心护主的
点赞 评论 收藏
分享
半解316:内容充实,细节需要修改一下。 1,整体压缩为一页。所有内容顶格。 2,项目描述删除,直接写个人工作量 修改完之后还需要建议,可以私聊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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