题解 | #输出单向链表中倒数第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;
}

全部评论

相关推荐

zzzilik:没事的,才刚刚开始,后面会捞的,这个三天没人发起面试自动结束,但是面试官还是能看到简历,四月份主战场会慢慢捞
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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