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

牛牛的单向链表

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. 输出链表
全部评论
使用虚拟头节点很方便
点赞
送花
回复
分享
发布于 04-08 23:08 湖南

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务