printf("\ninsert number:\n");
scanf("%d",&number);
Node *n=(Node*)malloc(sizeof(Node));
n->data=number;
pre=head;
p=head->next;
while(p!=NULL)
{
if(n->data<pre->data)
head->next=n;
if((n->data<=p->data)&&(n->data>=pre->data))
{
pre->next=n;
n->next=p;
}
else
{
pre=p;
p=p->next;
}
}
给一个已经升序排列的链表(带头结点)插入一个值,使其顺序不变。应该是while那里出问题了,可以看下哪里出错了吗
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- qzjhjxj 2021-11-30 14:21关注
供参考:
void insert(Node*& head) { int number; Node* pre, * p; printf("\ninsert number:\n"); scanf("%d", &number); Node* n = (Node*)malloc(sizeof(Node)); n->data = number; n->next = NULL; pre = head; p = head->next; while (p != NULL) { if (n->data <= p->data) { n->next = pre->next; pre->next = n; break; } pre = p; p = p->next; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 #MATLAB仿真#车辆换道路径规划
- ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
- ¥15 数据可视化Python
- ¥15 要给毕业设计添加扫码登录的功能!!有偿
- ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
- ¥15 微信公众号自制会员卡没有收款渠道啊
- ¥100 Jenkins自动化部署—悬赏100元
- ¥15 关于#python#的问题:求帮写python代码
- ¥20 MATLAB画图图形出现上下震荡的线条
- ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘