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