首页 > 编程语言 >算法面试通关40讲

算法面试通关40讲

时间:2024-03-07 21:35:53浏览次数:20  
标签:ListNode val nullptr list1 40 list2 面试 next 通关

三分学 七分练

数组、链表

leetcode 21

site

#include <iostream>
using namespace std;
struct ListNode {
    int val;
    ListNode *next;
    ListNode() : val(0), next(nullptr) {}
    ListNode(int x) : val(x), next(nullptr) {}
    ListNode(int x, ListNode *next) : val(x), next(next) {}
};
class Solution {
   public:
    ListNode *mergeTwoLists(ListNode *list1, ListNode *list2) {
        if (list1 == nullptr || list2 == nullptr) {
            return list1 == nullptr ? list2 : list1;
        }
        // tail insert
        ListNode header;
        ListNode *tail = &header;
        ListNode *tmp;
        while (list1 != nullptr && list2 != nullptr) {
            if (list1->val > list2->val) {
                tmp = list1;
                list1 = list2;
                list2 = tmp;
            }
            tail->next = list1;
            while (list1 != nullptr && list1->val <= list2->val) {
                tmp = list1;
                list1 = list1->next;
            }
            tail = tmp;
        }
        if (list1 == nullptr) {
            tmp->next = list2;
        }
        return header.next;
    }
};
int main() {
    ListNode list1_4(4);
    ListNode list1_2(2, &list1_4);
    ListNode list1_1(1, &list1_2);
    ListNode list2_4(4);
    ListNode list2_3(3, &list2_4);
    ListNode list2_1(1, &list2_3);
    Solution sol;
    ListNode *result = sol.mergeTwoLists(&list1_1, &list2_1);
}

标签:ListNode,val,nullptr,list1,40,list2,面试,next,通关
From: https://www.cnblogs.com/qqiwei/p/18059805

相关文章

  • 洛谷题单指南-搜索-P2404 自然数的拆分问题
    原题链接:https://www.luogu.com.cn/problem/P2404题意解读:将整数拆成若干数相加,按字母序输出,可以转换成从小到大往数组填数的问题,直到填的数之和等于n。解题思路:通过DFS,每次填一个数,填数时从1~n-1逐个填注意两个条件不能继续DFS:1、将填的数之和超过n2、将填的数小于上一次填......
  • 洛谷P4069 [SDOI2016] 游戏
    题目描述我们要操作的是一条在树上的路径\(s\)->\(t\)。(1)查询\(s\)->\(t\)最大的数字。(2)在\(s\)->\(t\)上增加一个数字,输入\(a\),\(b\),对于路径上的一个点\(u\)增加的数字是\(dis(s,u)\timesa+b\)。解题思路直接查询一条从\(s\)到\(t\)的路径是十分不方便的,所以我们......
  • 20240307正则表达式对常见字段的校验
    验证固话号码//表示以0开头,后跟2到3位数字,然后是-,最后是7到8位数字。publicstaticbooleancheckPhoneNumber(StringphoneNumber){if(StringUtils.isEmpty(phoneNumber)){returnfalse;}Patternpattern=Pattern.co......
  • 全新QSiC 1200V 模块:GCMS020A120S1-E1、GCMS040A120S1-E1、GCMX020B120S1-E1、GCMS020
    全新QSiC1200VSOT-227SiC模块,提升能源标准,这些超高效模块支持电动汽车、医疗电源和太阳能大功率应用的创新设计。特点低开关损耗低结至外壳热阻非常坚固,易于安装直接安装到散热器上(隔离封装)超低损耗的高频操作SiCSBDs的零反向恢复电流SiCMOSFETs的小关断尾电流低杂散电感......
  • 面试官让说出8种创建线程的方式,我只说了4种,然后挂了。。。
    写在开头昨天有个小伙伴私信说自己面试挂在了“Java有几种创建线程的方式”上,我问他怎么回答的,他说自己有背过八股文,回答了:继承Thread类、实现Runnable接口、实现Callable接口、使用线程池这四种,但是面试官让说出8种创建方式,他没说出来,面试就挂了,面试官给的理由是:只关注八股文背......
  • 苟日新_01_100/40
    1、MYSQLEXPLAINhttps://blog.csdn.net/jiadajing267/article/details/812690672、普通索引VS唯一性索引https://blog.csdn.net/w2298119289j/article/details/105383813使用查询时,普通索引与唯一索引性能差异可以忽略。更新语言时,普通索引性能比唯一索引要好。3、所有下......
  • 面试高频题:Java并发包有些什么?
    面试过Java研发岗位的同学,相信很多都碰到过面试官问这么一道题:Java并发包有些什么?Java并发包,就是java.util.concurrent包下的类和子包。大体分为三类:一:线程池工具 核心类为ThreadPoolExecutor,通过这个类,可以构建出各种线程池。二:原子工具如AtomicInteger、AtomicLong等,通......
  • .NET Core WebAPI项目部署iis后Swagger 404问题解决
    .NETCoreWebAPI项目部署iis后Swagger404问题解决前言之前做了一个WebAPI的项目,我在文章中写到的是Docker方式部署,然后考虑到很多初学者用的是iis,下面讲解下iis如何部署WebAPI项目。环境准备iisASPNETCoreModuleV2重点.NETCoreRuntimeiis的配置这里就不讲了,主要讲解......
  • 20240302 专项训练
    背包专项训练bottle题意简述link有\(n\)瓶水,第\(i\)瓶水有剩余水量\(a_i\)和最大容积\(b_i\),在不超过瓶子容积的前提下,小A可以把任意多的水从一个瓶子倒向另一个瓶子,所花费的时间等同于倒过去的水的体积。求最多能得到多少个空瓶,以及在得到最多的空瓶的前提下,他最少......
  • 20240306打卡
    第二周第一天第二天第三天第四天第五天第六天第七天所花时间1h5h1h代码量(行)7011662博客量(篇)111知识点了解学会详细地全局路由配置有关动态规划算法python基础知识使用今天打卡主要是对于昨天建民老师讲课的回顾总结。首......