首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
设计在无头结点的单链表中删除第i个结点的算法。
[问答题]
设计在无头结点的单链表中删除第
i
个结点的算法。
添加笔记
求解答(0)
邀请回答
收藏(5)
分享
纠错
1个回答
添加回答
0
蜡蜡
算法思想为:
(1)应判断删除位置的合法性,当i<0或i>n-1时,不允许进行删除操作;
(2)当i=0时,删除第一个结点:
(3)当0<i<n时,允许进行删除操作,但在查找被删除结点时,须用指针记住该结点的前趋结点。算法描述如下:
delete(LinkList *q,int i)
{ //在无头结点的单链表中删除第i个结点
LinkList *p,*s;
int j;
if(i<0)
printf("Can't delete");
else if(i= =0)
{ s=q;
q=q->next;
free(s);
}
else
{ j=0; s=q;
while((j<i) && (s! = NULL))
{ p=s;
s=s->next;
j++;
}
if (s= =NULL)
printf("Cant't delete");
else
{ p->next=s->next;
free(s);
}
}
}
发表于 2017-07-31 14:02:34
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
链表
上传者:
蜡蜡
难度:
1条回答
5收藏
1050浏览
热门推荐
相关试题
明明的随机数
数组
评论
(3691)
来自
华为研发工程师编程题
5.下列判断正确的是( )
资料分析
言语理解与表达
资料分析
评论
(1)
已知a
40
=...
京东
职能
2019
财务
保险
评论
(1)
《拳皇97》最后BOSS是谁?
游戏常识
评论
(1)
《魔兽世界》中,下列不属于玩家可以...
游戏常识
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题