题解 | #牛牛的链表添加节点#

牛牛的链表添加节点

https://www.nowcoder.com/practice/e33b79c2e15a41f9b541e73cd256124a

#include <stdio.h>
#include <stdlib.h>

typedef struct ListNode
{
    int data;
    struct ListNode* next;
}ListNode;

ListNode* Creat_list(int* arr,int n)
{
   ListNode* La = (ListNode*)malloc(sizeof(ListNode));
   La -> data = arr[0];
   La -> next = NULL;
   ListNode* r = La;
   for(int i = 1; i<n; i++)
   {
    ListNode* s = (ListNode*)malloc(sizeof(ListNode));
    s -> data = arr[i];
    s -> next = NULL;
    r -> next = s;
    r = s;
   }
   return La;
}

ListNode* InsertList(ListNode* La,int n,int m)
{
    if(m > n) return La;
    else
    {
        ListNode* pa = La;int count = 1;
        while(count < m)
        {
            pa = pa -> next;
            count++;
        }
        ListNode* s = (ListNode*)malloc(sizeof(ListNode));
        s -> data = m;
        s -> next = pa -> next;
        pa -> next= s;
    }
    return La;
}

void PrintList(ListNode* La)
{
    ListNode* pa = La;
    while(pa)
    {
        printf("%d ",pa -> data);
        pa = pa -> next;
    }
}

int main() {
    int n = 0,m = 0;
    scanf("%d%d",&n,&m);
    int arr[n];
    for(int i = 0; i<n;i++)
    scanf("%d",&arr[i]);
    ListNode *La = Creat_list(arr,n);
    La = InsertList(La,n,m);
    PrintList(La);
    return 0;
}

主要就是链表元素的插入:此题较为简单,还没有用到头结点,熟记插入代码“先右后左”。

全部评论

相关推荐

03-26 22:55
门头沟学院 Java
烤冷面在迎接:河南byd,应该就是郑大了。不过24届计算机是特殊情况,那年除了九✌和强2,以及两三个关系够硬的双非,其他的都是炮灰,感觉是十几年来互联网行业最烂的一年,如果想了解最新的就业情况,得找现在的大四。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务