删除链表中某范围的数

要求:
已知一个链表,里面有5个元素,依次为:2,29,41,67,6,要求删除链表内的大于等于20,小于等于40的数,并输出删除后的链表。

参考代码:


#include <stdio.h>
#include <stdlib.h>
 struct node{
    int data;
    struct node *next;
};

struct node* init(struct node* linkList,int arr[],int length){
	linkList = NULL;
	struct node *p;
	int i=0;
    printf("删除前的链表:");
	while(i<length){
		p = (struct node*)malloc(sizeof(struct node));
		p ->data = arr[i];
        printf("%d,",p->data);
		p ->next = linkList;
		linkList = p;
		i++;
	}
    printf("\n");
	return linkList;
}

struct node* Delete(struct node* Linklist,int min,int max)
{
struct node* head;
head = (struct node*)malloc(sizeof(struct node));
head->next=Linklist;
    struct node* tail;
    tail = head;
    while (head->next)
    {
        if (head->next->data >=min && head->next->data <= max){
            head->next = head->next->next;
        }
        else{
            head = head->next;
       }
    }
    return tail->next;
 
}
 
int main()
{
	struct node *a,*result;
	int arr[]={2,29,41,67,6};
	result=init(a,arr,5);
	result=Delete(result,20,40);
	printf("删除后的链表:");
	for(result; result != NULL; result = result ->next){
		printf("%d,",result->data);
    }
		printf("\n");
	system("pause");
	return 0;
}

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值