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

全部评论

相关推荐

05-19 19:57
蚌埠学院 Python
2237:Gpa70不算高,建议只写排名,个人技能不在多而在精,缩到8条以内。项目留一个含金量高的,减少间距弄到一页,硕士简历也就一页,本科不要写很多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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