39度C 2022-03-12 10:16 采纳率: 100%

ListNode链表插入节点函数：指针参数传入及回传问题

``````
//插入节点，参数：插入那个链表，插入节点的数据是多少
struct Node* insertNodeByHead(struct Node* headNode, int data){
struct Node* newNode = createNode(data);
headNode = (struct Node*)malloc(sizeof(struct Node));
}
newNode->next = headNode->next; //此时两个节点共同指向下一个节点
}
``````

``````
struct Node* createList(){
struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));
//变量使用前必须初始化
}

int main(){
struct Node* List;                        //创建一个链表变量    未初始化
struct Node* list = createList();              //创建一个链表，已分配内存    但后面并没有使用到这个链表
//List = insertNodeByHead(List, 3);         //使用这个语句插入成功
printList(List);                             //打印链表
return 0;
}
``````

``````int main(){
struct Node* List;      //创建一个链表变量    未初始化
//struct Node* list = createList();
List = insertNodeByHead(List, 4);
printList(List);
return 0;
}

``````

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

struct Node{
int data;
struct Node* next;
};

struct Node* createList(){
struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));
//变量使用前必须初始化
}

//创建节点
struct Node* createNode(int data){
struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
newNode->data = data;
newNode->next = NULL;
return newNode;
}

void printList(struct Node* headNode){
struct Node* pMove = headNode;
while(pMove){
printf("%d\t", pMove->data);
pMove = pMove->next;
printf("`");
}
printf("\n");
}

//插入节点，参数：插入那个链表，插入节点的数据是多少
struct Node* insertNodeByHead(struct Node* headNode, int data){
struct Node* newNode = createNode(data);
headNode = (struct Node*)malloc(sizeof(struct Node));
}
newNode->next = headNode->next; //此时两个节点共同指向下一个节点
}

//删除指点节点
int deleteNodeByAppoint(struct Node* headNode, int posData){
struct Node* posNode = headNode->next;
struct Node* posNodeFront = headNode;
if(posNode==NULL){
printf("删除失败，无法删除空链表！\n");
return 0;
}
else{
while(posNode!=NULL){
if(posNode->data == posData){
posNodeFront->next = posNode->next;
free(posNode);
return 1;
}
posNodeFront = posNode;
posNode = posNodeFront->next;
}
printf("没有找到相关数据，无法删除！\n");
}
}

int main(){
struct Node* List;      //创建一个链表变量    未初始化
//struct Node* list = createList();
List = insertNodeByHead(List, 4);
printList(List);
return 0;
}

``````
• 写回答

2条回答默认 最新

• CSDN专家-link 2022-03-12 10:45
关注

改为
List = insertNodeByHead(List, 3);
===================

本回答被题主选为最佳回答 , 对您是否有帮助呢?
评论 编辑记录

• 系统已结题 3月20日
• 已采纳回答 3月12日
• 创建了问题 3月12日

悬赏问题

• ¥15 为啥画版图在Run DRC会出现Connect Error？可我Calibre的hostname和计算机的hostname已经设置成一样的了。
• ¥20 网站后台使用极速模式非常的卡
• ¥20 Keil uVision5创建project没反应
• ¥15 mmseqs内存报错
• ¥15 vika文档如何与obsidian同步
• ¥15 华为手机相册里面的照片能够替换成自己想要的照片吗？
• ¥15 陆空双模式无人机飞控设置
• ¥15 sentaurus lithography
• ¥100 求抖音ck号 或者提ck教程
• ¥15 关于#linux#的问题：子进程1等待子进程A、B退出后退出(语言-c语言)