题解 | #牛牛的单向链表#
牛牛的单向链表
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进行移动思路
- 定义一个结构体
- 创建链表,通过取地址符&,获得cur->val的地址
- 输出链表