题解 | #牛牛的单向链表#
牛牛的单向链表
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的地址
- 输出链表