1. 问简历上的项目
2. 问会的语言和框架,编程能力,代码质量
3. 算法题
翻转链表
Leetcode: /problems/reverse-linked-list/submissions/
ACWing:/problem/content/33/
需要记录一个前驱结点(pPre)个一个后继结点(pNext)。
ListNode* reverseList(ListNode* head) {
if (!head) return nullptr;
ListNode* pNode = head;
ListNode* pPre = nullptr;
while(pNode){
ListNode* pNext = pNode->next;
pNode->next = pPre;
pPre = pNode;
pNode = pNext;
}
return pPre;
}
或者
ListNode* reverseList(ListNode* head) {
if (!head) return nullptr;
ListNode* pNode = head;
ListNode* pPre = nullptr;
ListNode* newHead = nullptr;
while(pNode){
ListNode* pNext = pNode->next;
if (!pNext){
newHead = pNode;
}
pNode->next = pPre;
pPre = pNode;
pNode = pNext;
}
return newHead;
}