牛客编程里面单链表是不是都带数据了,做NC53 删除链表的倒数第n个节点 题目有计算单链表长度:
ListNode* p=head;
int length=0;
while(p!=nullptr)
{
p=p->next;
length++;
}
上面是能通过的代码段,之前想着头结点不带数据,那么while里面应该改成p->next!=nullptr,但这样提交结果是错的,因此想着是不是头结点带了数据(或者说没有头结点)
ListNode* p=head;
int length=0;
while(p!=nullptr)
{
p=p->next;
length++;
}
上面是能通过的代码段,之前想着头结点不带数据,那么while里面应该改成p->next!=nullptr,但这样提交结果是错的,因此想着是不是头结点带了数据(或者说没有头结点)
全部评论
相关推荐
查看22道真题和解析 点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2025-12-12 18:38
福州工商学院 产品经理 思念SiN:你这里没有通过的主要原因应该是计算平均分数的时候,在你贴的代码的第23行:
```c
b[i]=(sum-max-min)/(m-2);
```
等式的右边实际上是两个`int`类型的变量在做除法,C语言里面得到的结果会是这个除法的整数部分,余数部分被舍弃了,也不会自动变成浮点数去做除法。所以虽然你使用了`b[i]`这个浮点数去接收结果,但是等式右边除法是先得到了一个整数,然后再被转换为浮点数再赋值给了`b[i]`。你可以按下面这样,在做除法之前,先进行类型转换,就能得到期望的结果:
```c
b[i]=(float)(sum-max-min)/(float)(m-2);
```
点赞 评论 收藏
分享
美的集团公司福利 878人发布