微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

单链表的定义及空指针头插法

单链表定义

点击查看代码
typedef struct node_s {
	int val;
	struct node_s* next;
}Node;

头插法

点击查看代码
void add_to_head(Node** list, int val) {		//因为要改变头指针指向,需要一个指向头指针地址的指针,即二级指针
	Node** head = list;
	Node* newNode = (Node*)malloc(sizeof(Node));
	newNode->val = val;
	newNode->next = NULL;
	
	newNode->next = *head;
	*head = newNode;
}

设置带有头指针的单链表

点击查看代码
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct node_s {
	int val;
	struct node_s* next;
}Node;

void add_to_head(Node** head,int val);

int main() {
	Node* list = NULL;

	add_to_head(&list, 1);
	add_to_head(&list, 2);
	add_to_head(&list, 3);
	add_to_head(&list, 4);
	add_to_head(&list, 5);

	for (Node* head = list; head != NULL; head = head->next) {
		printf("%d ", head->val);
	}

	return 0;
}

void add_to_head(Node** list, int val) {	
	Node** head = list;
	Node* newNode = (Node*)malloc(sizeof(Node));
	newNode->val = val;
	newNode->next = NULL;
	
	newNode->next = *head;
	*head = newNode;
}

运行结果

image

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐