海康存储的面试官真low
 #发面经攒人品#         第一志愿被刷了,调剂到这边。
没什么耐心就算了,人还菜。出了一道题目:数字按十进制从高位开始按链表存储,比如1234表示为1->2->3->4->NULL,给出两个链表,求两个数字相加后的链表表示。让我口述思路。
13:40的面试,中午没休息好,下意识说出了两个链表顺序遍历,逐节点相加并处理进位的思路。(下意识的想法,事后我当然知道也可以先转换成数字,再相加,再表示成链表)
提示我顺序错了,我说那可以先反转链表,再相加,计算结果再反转。
追问怎么反转链表,我说口述说不清楚,能不能直接写出来,要不了几分钟,或者能边画边说明也行。battle了好一会儿终于同意我写出来了。
写了个头结点插入法,程序张这样:(必须用C语言)
```c
typedef struct node{
int val;
struct node* next;
}listNode;
listNode* reverse_list(listNode* head) {
listNode dummy = {-1, head};
listNode* p = head;
while (p != NULL)
{
listNode* cur = p;
p = p->next;
cur->next = dummy.next;
dummy.next = cur;
}
head->next = NULL;
return dummy.next;
}
```
首先这个哑结点他看不懂什么意图,反反复复问头结点已经给我了,为什么还要定义一个头结点。我说这个哑结点没有实际意义,只是为了处理方便,哑结点的后继节点才是真正的头节点。(前驱和后继他貌似也听不懂是什么意思?)
然后他又纠结原本的第一个节点怎么指向自己了?我说这不影响,因为遍历后还有一句 head->next = NULL; 原本的头结点是新的尾节点嘛。他应该还是没搞明白
我说要不把完整的程序写出来运行一遍演示一下吧,结果写了一两分钟,他说只有30分钟的时间就快结束了,他要去面试下一个人
。。。
跟您battle的时间早够我写完整个程序了,就这水平,不去也罢
        没什么耐心就算了,人还菜。出了一道题目:数字按十进制从高位开始按链表存储,比如1234表示为1->2->3->4->NULL,给出两个链表,求两个数字相加后的链表表示。让我口述思路。
13:40的面试,中午没休息好,下意识说出了两个链表顺序遍历,逐节点相加并处理进位的思路。(下意识的想法,事后我当然知道也可以先转换成数字,再相加,再表示成链表)
提示我顺序错了,我说那可以先反转链表,再相加,计算结果再反转。
追问怎么反转链表,我说口述说不清楚,能不能直接写出来,要不了几分钟,或者能边画边说明也行。battle了好一会儿终于同意我写出来了。
写了个头结点插入法,程序张这样:(必须用C语言)
```c
typedef struct node{
int val;
struct node* next;
}listNode;
listNode* reverse_list(listNode* head) {
listNode dummy = {-1, head};
listNode* p = head;
while (p != NULL)
{
listNode* cur = p;
p = p->next;
cur->next = dummy.next;
dummy.next = cur;
}
head->next = NULL;
return dummy.next;
}
```
首先这个哑结点他看不懂什么意图,反反复复问头结点已经给我了,为什么还要定义一个头结点。我说这个哑结点没有实际意义,只是为了处理方便,哑结点的后继节点才是真正的头节点。(前驱和后继他貌似也听不懂是什么意思?)
然后他又纠结原本的第一个节点怎么指向自己了?我说这不影响,因为遍历后还有一句 head->next = NULL; 原本的头结点是新的尾节点嘛。他应该还是没搞明白
我说要不把完整的程序写出来运行一遍演示一下吧,结果写了一两分钟,他说只有30分钟的时间就快结束了,他要去面试下一个人
。。。
跟您battle的时间早够我写完整个程序了,就这水平,不去也罢
全部评论 
 这真是技术官来面的吗?感觉像kpi面了
相关推荐
 不想上班的喜羊羊很不...:查个🥚,你都进大厂了,肯定看你技术啊,谁管你30,50的,只有选调,公务员这种是会相当严格背调的,所以把心放肚子里吧兄弟
不想上班的喜羊羊很不...:查个🥚,你都进大厂了,肯定看你技术啊,谁管你30,50的,只有选调,公务员这种是会相当严格背调的,所以把心放肚子里吧兄弟 点赞 评论 收藏   
分享
  点赞 评论 收藏   
分享