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

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

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

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct Link {
    int elem;
    struct Link* next;
}link;

link* initlink(int n)
{
    link* pnew, * head, * ptail;
    pnew = (link*)malloc(sizeof(link));
    scanf("%d", &pnew->elem);
    head = pnew;
    ptail = pnew;
    for (int i = 1; i < n; i++)
    {
        pnew = (link*)malloc(sizeof(link));
        scanf("%d", &pnew->elem);
        ptail->next = pnew;
        ptail = pnew;
    }
    ptail->next = NULL;
    return head;
}

int main(void)
{
    int n;
    int k;
    while (scanf("%d", &n) != EOF)
    {
        
        link* p;
        link* p1;
        p = initlink(n);
        p1 = p;
        scanf("%d", &k);
        //计算链表长度
        int cnt = 1;
        while (p->next != NULL)
        {
            cnt++;
            p = p->next;
        }
        int j;
        j = cnt - k;
        while (j != 0)
        {
            p1 = p1->next;
            j--;
        }
        /*for (int j = 0; j < cnt; j++)
        {
            printf("%d", p1->elem);
            p1 = p1->next;
        }*/
        printf("%d\n", p1->elem);
    }
    
    return 0;
}


全部评论

相关推荐

11-14 16:13
已编辑
重庆科技大学 测试工程师
Amazarashi66:不进帖子我都知道🐮❤️网什么含金量
点赞 评论 收藏
分享
面试摇了我吧:啊哈哈面试提前五个小时发,点击不能参加就是放弃
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务