删除单链表中第k个节点
来源:互联网 发布:道路工程预算软件 编辑:程序博客网 时间:2024/04/30 22:50
#include<stdio.h>
#include<stdlib.h>
//单链表有头结点的链表
typedef int ElemType;
typedef struct node
{
ElemType data;
struct node *next;
}Node,*LINK;
LINK create()//创建一个链表
{
LINK phead=(LINK)malloc(sizeof(Node));
LINK pend,pnew;
ElemType data;
phead->next=NULL;
pend=phead;
printf("请输入数据:\n");
scanf("%d",&data);
while(data!=0)
{
pnew=(LINK)malloc(sizeof(Node));
pnew->data=data;
pnew->next=NULL;
pend->next=pnew;
pend=pnew;
scanf("%d",&data);
}
return phead;
}
void display(LINK phead)//遍历链表
{
LINK ptemp=(LINK)malloc(sizeof(Node));
ptemp=phead->next;
while(ptemp!=NULL)
{
printf("%d ",ptemp->data);
ptemp=ptemp->next;
}
printf("\n");
}
void removeNode(LINK phead,int k)
{
LINK p=phead->next,temp=phead;
for(int i=1;i<=k-1;i++)
{
temp=p;
p=p->next;
}
printf("删除节点元素为:%d",p->data);
temp->next=p->next;
free(p);
}
int main()
{
LINK phead=(LINK)malloc(sizeof(Node));
int data=0;
phead=create();
display(phead);
int value;
printf("请输入一个值:");
scanf("%d",&value);
removeNode(phead,value);
printf("删除后的链表:");
display(phead);
return 0;
}
#include<stdlib.h>
//单链表有头结点的链表
typedef int ElemType;
typedef struct node
{
ElemType data;
struct node *next;
}Node,*LINK;
LINK create()//创建一个链表
{
LINK phead=(LINK)malloc(sizeof(Node));
LINK pend,pnew;
ElemType data;
phead->next=NULL;
pend=phead;
printf("请输入数据:\n");
scanf("%d",&data);
while(data!=0)
{
pnew=(LINK)malloc(sizeof(Node));
pnew->data=data;
pnew->next=NULL;
pend->next=pnew;
pend=pnew;
scanf("%d",&data);
}
return phead;
}
void display(LINK phead)//遍历链表
{
LINK ptemp=(LINK)malloc(sizeof(Node));
ptemp=phead->next;
while(ptemp!=NULL)
{
printf("%d ",ptemp->data);
ptemp=ptemp->next;
}
printf("\n");
}
void removeNode(LINK phead,int k)
{
LINK p=phead->next,temp=phead;
for(int i=1;i<=k-1;i++)
{
temp=p;
p=p->next;
}
printf("删除节点元素为:%d",p->data);
temp->next=p->next;
free(p);
}
int main()
{
LINK phead=(LINK)malloc(sizeof(Node));
int data=0;
phead=create();
display(phead);
int value;
printf("请输入一个值:");
scanf("%d",&value);
removeNode(phead,value);
printf("删除后的链表:");
display(phead);
return 0;
}
0 0
- 删除单链表中第k个节点
- 删除单链表倒数第K个节点
- 删除链表中倒数第k个节点
- 单链表删除倒数第k个节点
- 删除链表中倒数第K个节点,
- 删除链表倒数k个节点
- 删除倒数第k个节点
- 删除单链表中第i个节点
- 链表之删除单链表倒数第K个节点
- 链表之删除双链表倒数第K个节点
- 在单链表和双链表中删除倒数第k个节点
- 删除单链表的倒数第K个节点
- 在单链表中删除倒数第K个节点 Python 版
- 链表K个节点翻转
- 链表K个节点翻转
- 【链表&删除倒数第K个节点】Remove Nth Node From End of List
- 链表(8)----删除链表的第K个节点,时间复杂度为O(1)
- 链表排序、链表删除、访问倒数第k个节点
- JavaScript事件代理和委托(Delegation)
- 让sql语句不排序,按照in语句的顺序返回结果
- 51nod 1268 和为k的组合
- [LeetCode]344. Reverse String
- POJ 2749 || HDU 1815 Building roads 2-sat
- 删除单链表中第k个节点
- Leetcode-416. Partition Equal Subset Sum
- Android架构蓝图------MVP
- 旅游攻略
- 什么叫过滤器呢?
- 【bzoj 3172】【codevs 2542】[Tjoi2013]单词(AC自动机)
- linux菜鸟入门之压缩以及归档
- laravel开发环境homestead搭建
- CSS 入门 笔记