链表学习笔记(上)
2025-08-20 10:55:43
发布于:上海
作者闲的没事干发的
下面放上一堆链表函数(终于用上英文单词了):
struct node//链表初始化 
{
	int data;
	node* next;
	node(int x):data(x),next(NULL){};
};
node* createlist(int arr[],int size)//创建链表 
{
	if(size<=0)return nullptr;
	node* head=new node(arr[0]);
	node* cur=head;
	for(int i=1;i<size;i++)
	{
		cur->next=new node(arr[i]);
		cur=cur->next;
	}
	return head;
}
void printlist(node* head)//打印链表 
{
	node* cur=head;
	while(cur!=nullptr)
	{
		cout<<cur->data<<" ";
		cur=cur->next;
	}
}
node* insertAtHead(node* head,int val)//在链表头插入 
{
	node* newNode=new node(val);
	newNode->next=head;
	return newNode;
}
node* insertAtTail(node* head,int val)//在链表尾端插入 
{
	node* newNode=new node(val);
	if(head==nullptr)return newNode;
	node* cur=head;
	while(cur->next!=nullptr)
	{
		cur=cur->next; 
	}
	cur->next=newNode;
	return head;
}
node* insertAtIndex(node* head,int index,int val)//在链表任意位置插入 
{
	if(index==0)return insertAtHead(head,val);
	node* newNode=new node(val);
	node* cur=head;
	int curIndex=0;
	while(cur!=nullptr&&curIndex<index-1)
	{
		cur=cur->next;
		curIndex++;
	}
	if(cur==nullptr)
	{
		delete newNode;//释放节点,减少空间复杂度
		return head; 
	}
	newNode->next=cur->next;
	cur->next=newNode;
	return head;
}
node* deletehead(node* head)//链表删头 
{
	if(head==nullptr)return nullptr;
	node* temp=head;
	head=head->next;
	delete temp;//用完节点就删 
	return head;
}
node* deletetail(node* head)//链表删尾 
{
	if(head==nullptr)return nullptr;
	if(head->next==nullptr)
	{
		delete head;
		return nullptr;//如果链表只有头就返回空 
	}
	node* cur=head;
	while(cur->next->next!=nullptr)
	{
		cur=cur->next;
	}
	delete cur->next;
	cur->next=nullptr;
	return head;
}
node* deleteIndex(node* head,int index)//删除链表任意位置 
{
	if(head==nullptr)return nullptr;
	if(index==0)return deletehead(head);
	node* cur=head;
	int curIndex=0;
	while(cur!=nullptr&&curIndex<index-1)
	{
		cur=cur->next;
		curIndex++;
	}
	if(cur==nullptr||cur->next==nullptr)return head;
	node* temp=cur->next;
	cur->next=cur->next->next;
	delete temp;
	return head;
}
全部评论 5
d
2025-08-31 来自 上海
0珠宝为啥不用list
2025-08-24 来自 广东
0懒得用,纯手搓
2025-08-24 来自 上海
0
d
2025-08-24 来自 上海
0%%%
2025-08-21 来自 上海
0链表大佬
2025-08-21 来自 上海
0闲的没事干发的
2025-08-22 来自 上海
0
d
2025-08-20 来自 上海
0



















有帮助,赞一个