求助,为什么我的单链表没法打印出来?

为什么c语言createList2的参用**head,head传不到printfList2里面呢?
前半部分的代码运行结果图:
在这里插入图片描述
后半部分代码运行结果图:
在这里插入图片描述

#include<stdio.h>
#include<stdlib.h>
#pragma warning(disable:4996);

//单链表尾插法建表法
typedef struct LNode
{
	int data;
	struct LNode* next;
}LNode;
void createList2(LNode** head)//head要改变
{
	*head = (LNode *)malloc(sizeof(LNode));//申请头结点=初始化链表
	(*head)->next = NULL;
	LNode* p = NULL;//用p指针来指向接下来新的节点
	LNode* r = *head;//r表示尾指针,始终指向最后一个节点
	int n;//n是节点个数
	printf("请输入表长\n");
	scanf("%d", &n);
	for (int i = 0; i < n; i++)//将新的结点链接到尾部
	{
		p = (LNode*)malloc(sizeof(LNode));//p是指针前面已经说过了
		p->next = NULL;
		/*printf("请输入数据:\n");*/
		scanf("%d", &p->data);//注意&后怎么写的
		p->next = r->next;//写成这样是为了和中间插入的写法一致
		r->next = p;
		r = p;
	}
}
void printfList2(LNode **head)
{
	LNode* temp;
	temp = (*head)->next;
	while (temp)
	{
		printf("%d ", temp->data);
		temp = temp->next;
	}
	printf("\n打印结束\n");
}
int main()
{
	LNode **head=NULL;
	createList2(head);
	printf("尾插法建立的链表为:\n");
	printfList2(head);
	return 0;
}
//前半部分代码如上

//后半部分代码如下
//换成c++写法就可以了,我不会c++,这是仿照别人代码思路敲的,可能有错

#include<iostream>
#pragma warning(disable:4996);

//单链表尾插法建表法
typedef struct LNode
{
	int data;
	struct LNode* next;
}LNode;
void createList2(LNode *&head)//head要改变
{
	head = (LNode*)malloc(sizeof(LNode));//申请头结点=初始化链表
	head->next = NULL;
	LNode* p = NULL;//用p指针来指向接下来新的节点
	LNode* r = head;//r表示尾指针,始终指向最后一个节点
	int n;//n是节点个数
	printf("请输入表长\n");
	scanf("%d", &n);
	for (int i = 0; i < n; i++)//将新的结点链接到尾部
	{
		p = (LNode*)malloc(sizeof(LNode));//p是指针前面已经说过了
		p->next = NULL;
		/*printf("请输入数据:\n");*/
		scanf("%d", &p->data);//注意&后怎么写的
		p->next = r->next;//写成这样是为了和中间插入的写法一致
		r->next = p;
		r = p;
	}
}
void printfList2(LNode* head)
{
	LNode* temp;
	temp = head->next;
	while (temp)
	{
		printf("%d ", temp->data);
		temp = temp->next;
	}
	printf("\n打印结束\n");
}
int main()
{
	LNode*head = NULL;
	createList2(head);
	printf("尾插法建立的链表为:\n");
	printfList2(head);
	return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值