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