题解 | #牛牛的单向链表#

牛牛的单向链表

https://www.nowcoder.com/practice/95559da7e19c4241b6fa52d997a008c4

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


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


int main() {
   int n;
   scanf("%d",&n);
   ListNode* dummyHead = (ListNode*) malloc(sizeof(ListNode));
   dummyHead->next = NULL;
   ListNode* cur=dummyHead;

   for(int i = 1;i<= n;i++)     //创建链表
   {
    ListNode* newNode =(ListNode*) malloc(sizeof(ListNode));
    scanf("%d ",&newNode->val);
    newNode->next = NULL;
    cur->next = newNode;
    cur = newNode;
   }
   

   cur = dummyHead->next;   //输出链表
   while(cur != NULL)
   {
    printf("%d ",cur->val);
    
    cur=cur->next;
   }

   return 0;
}

犯了极其愚蠢的错误,链表中移动指针不能使用++(连着写了几道数组的题目),应该使用cur->next进行移动思路

  1. 定义一个结构体
  2. 创建链表,通过取地址符&,获得cur->val的地址
  3. 输出链表
全部评论
使用虚拟头节点很方便
点赞 回复 分享
发布于 2024-04-08 23:08 湖南

相关推荐

这不纯纯作弊了吗😢😢😢
编程界菜鸡:信这个的这辈子有了,这智商你靠啥都没用
你找工作的时候用AI吗?
点赞 评论 收藏
分享
测试糕手手:社会第一课,随便吹牛逼,直接说四个月,别老实。老实人只会被欺负
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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