1. 問履歷上的項目
2. 問會的語言和架構,程式設計能力,代碼品質
3. 算法題
翻轉連結清單
Leetcode: https://leetcode.com/problems/reverse-linked-list/submissions/
ACWing:https://www.acwing.com/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;
}