石头科技(苏州)的奇幻面试经历

第一场就挂了,应该说笔试环节就挂了。真的很crazy,感觉很无语。
笔试题是一个简单的删除链表倒数第n个节点,时间要求25分钟。
main函数里面手动定义链表的每个节点,使用new分配内存。把链表head与n传入需要实现的函数removeN(Node*  node, uint32_t n)。
为了删除节点n,我使用tem保存了n号节点的指针,然后delete temp。下面的发生的事情就非常的戏剧性了。
代码写完,进行review。

面试官:为什么要delete。

答:会内存泄漏巴拉巴拉。

面试官:不需要delete,temp是临时变量,自是栈上面分配的,removeN结束后temp会自动释放。

答:node是main函数里面new分配的,需要手动delete。(我翻到创建链表的代码部分)

面试官:你的node是这样new出来的啊,(巴拉巴拉记不太清了),那没什么好说的了,看来你对链表还不是很熟悉。

我瞬间有点给我整不自信了,看了下代码没问题啊,创建表头,然后一个个往后追加节点。

我尝试跟他解释,说了半天,感觉他都没弄明白,说我创建的链表有问题。说不应该delete temp,temp=front->next,是一个零时变量,delete temp不能释放内存,函数结束之后这个节点的内存会自动释放。嘴上还一直挂着:“那就没什么说的了”这句话,给我整的有点上头了,我就问他,那要是你来实现你怎么做。

最后直接抛下一句: 已经过了25分钟了,已经不过关了。

真的是究极离谱,笔试开始前我打开vs给他看,他还问我能不能本地编译😂

结束之后心情久久不能平静,就这水平也能出来给别人面试,真的服了,连这种基础的东西都不懂。#软件开发2024笔面经#

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务