6.28–14:30一面(耗时一个半小时)(记录第一次面试)
面试部门:微信搜一搜
两道算法题
-
翻转列表
//题目,实现下面这个函数 struct LinkNode{ int value; LinkNode* next; } void reverse(LinkNode* head);
题目不难,但是自己出现了很多小毛病,先放我当时写的代码
#include <iostream> using namespece std; struct LinkNode{ int value; LinkNode* next; } LinkNode* reverse(LinkNode* head){ if(!head) return head; LinkNode* t = head; head = head->next; while(head){ LinkNode *l = head->next; //这里判定也有问题,面试没问,需要加上head->next为null的情况 head->next = t; t = head; head = l; } return t; } int main(){ LinkNode *l1, *l2, *l3; l1->value = 1; l2->value = 2; l3->value = 3; l1->next = l2; l2->next = l3; l3->next = nullptr; l1 = reverse(l1); while(l1){ cout << l1->value << endl; l1 = l1->next