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

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

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

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct node {
    int data;
    struct node* next;
};

int main() {
    int num;
    while (scanf("%d", &num) != EOF) {
        struct node* head = (struct node*)malloc(sizeof(struct node));
        head->next = NULL;
        struct node* p = head;
        for (int i = 0; i < num; i++) {
            struct node* temp = (struct node*)malloc(sizeof(struct node));
            scanf("%d", &temp->data);
            temp->next = NULL;
            p->next = temp;
            p = temp;
        }
        int k;
        scanf("%d", &k);
        struct node* q = head;
        for (int i = 0; i <k-1; i++) {
            q = q->next;
        }
        struct node* r = head;
        while (q->next != NULL) {
            q = q->next;
            r = r->next;
        }
        printf("%d\n", r->data);
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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