中科院软件所面试

时间:2025-03-13 07:53:59

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;
    }