哈啰 安卓开发实习 面经
投递渠道:boss
timeline:
- 2024.11.04 投递
- 2024.11.05 一面
- 2024.11.05 oc
- 2024.11.06 offer 已拒
一面
- 自我介绍
- 了解哈啰吗
- 项目背景
- 项目细节
- 遇到过哪些问题,怎么解决
- 标准库怎么实现的
- 有没有了解过其他开源项目
- 有没有团队合作过项目
- 学了多久
- 面向对象有什么好处
- 面向对象三大特性
- 了解哪些设计模式
- 手撕:反转链表(共享屏幕,在 IDE 写,面试官夸习惯好)
#include <iostream> /* * * 给定单链表的头节点head,请反转链表,并返回反转后的链表的头节点。 示例 1:输入:head = [1,2,3,4,5]输出:[5,4,3,2,1] 不限定语言和IDE * */ struct Node { int val_; Node* next_ = nullptr; Node(int val) : val_{val} {} }; Node* reverseList(Node* head) { Node* prev = nullptr; Node* cur = head; while(cur) { auto next = cur->next_; cur->next_ = prev; prev = cur; cur = next; } return prev; } void print(Node* head) { while(head) { std::cout << head->val_ << ' '; head = head->next_; } std::cout << '\n'; } void destroy(Node* head) { while(head) { auto next = head->next_; delete head; head = next; } } void test() { // [1,2,3,4,5] auto head = new Node(1); auto tail = head; for(int i = 2; i <= 5; i++) { tail->next_ = new Node(i); tail = tail->next_; } print(head); head = reverseList(head); print(head); destroy(head); } int main() { test(); }
- 反问
当天晚上 oc,第二天发 offer,已拒