提前批面试记录bd

  1. 项目的特色、项目用到的开源库(技术选型)、为什么项目要这么设计(对项目的思考)
  2. 操作系统内存管理 进程地址空间
  3. 哈希表时间复杂度 怎么实现哈希表
  4. 哈希表扩容
  5. LRU页面置换算法
  6. k个结点反转链表 讲讲思路
  7. 读过什么源码

暂时就想起来这些

总结:项目要熟练、基础要扎实、手撕要逻辑清晰


#include <iostream>
#include <memory>
using namespace std;


struct ListNode {
    int val;
    ListNode* next;
    ListNode(int v): val(v), next(nullptr) {}
};

class Solution {
public:
    ListNode* reverseKGroup(ListNode* head, int k) {
        if (head == nullptr) {
            return head;
        }
        ListNode *tmp = head;
        int cnt = 0;
        while (tmp->next != nullptr && cnt < k - 1) {
            tmp = tmp->next;
            ++cnt;
        }
        if (cnt < k - 1) {
            return head;
        }
        ListNode *nextHead = reverseKGroup(tmp->next, k);
        tmp->next = nullptr;
        ListNode *newHead = reverse(head);
        tmp = newHead;
        while (tmp->next != nullptr) {
            tmp = tmp->next;
        }
        tmp->next = nextHead;
        return newHead;
    }

    ListNode* reverse(ListNode *root) {
        if (root == nullptr || root->next == nullptr) {
            return root;
        }
        ListNode *res = reverse(root->next);
        root->next = nullptr;
        ListNode *tmp = res;
        while (tmp->next != nullptr) {
            tmp = tmp->next;
        }
        tmp->next = root;
        return res;
    }
};

int main() {

    int k;
    cin >> k;
    int v;
    ListNode *head = new ListNode(-1);
    ListNode* tmp = head;
    while (cin >> v) {
        if (v == 0) {
            break;
        }
        tmp->next = new ListNode(v);
        tmp = tmp->next;
    }

    Solution s;
    ListNode *res = s.reverseKGroup(head->next, k);
    tmp = res;
    while (tmp != nullptr) {
        cout << tmp->val << " ";
        tmp = tmp->next;
    }
    // delete
    while (head) {
        tmp = head;
        head = head->next;
        delete tmp;
    }
    return 0;
}

用上面代码跑为什么会把输入都输出一遍 如下

全部评论

相关推荐

Vincent777...:实习经历可以考虑放上去,对于软件使用方面可以细化一些,比如调整为:熟悉基于LSDYNA的瞬态动力学仿真分析,熟悉基于WORKBENCH的结构拓扑优化
我的简历长这样
点赞 评论 收藏
分享
07-15 18:09
门头沟学院 Java
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务