【leetcode-合并两个有序链表】

迭代法

java 复制代码
  public ListNode mergeTwoLists(ListNode list1, ListNode list2) {
        ListNode result = new ListNode(0);
        ListNode cur = result;
        while(list1!=null && list2!=null){ 
            //判断list1和list2的大小
            int val1 =list1.val;
            int val2 =list2.val;
            if(val1<val2){
                //取最小的
                ListNode node = new ListNode(val1);
                cur.next=node;
                cur=cur.next;
                list1=list1.next;
            }else if(val1> val2){
                ListNode node = new ListNode(val2);
                cur.next=node;
                cur=cur.next;
                list2=list2.next;
            }else{
                ListNode node1 = new ListNode(val1);
                ListNode node2 = new ListNode(val2);
                cur.next=node1;
                cur=cur.next;
                cur.next=node2;
                cur=cur.next;
                list1=list1.next;
                list2=list2.next;
            }
        }
        //如果list1还有,则直接将list1插入到后面
        while(list1 !=null){
            cur.next=list1;
            cur=cur.next;
            list1=list1.next;
        }
        //同理list2
        while(list2!=null){
            cur.next=list2;
            cur=cur.next;
            list2=list2.next;
        }
        return result.next;
    }

递归法

java 复制代码
    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
        if(l1 == null || l2 == null){
            return l1==null ? l2 : l1;
        }
        if(l1.val <=l2.val){
            l1.next=mergeTwoLists(l1.next,l2);
            return l1;
        }else{
            l2.next=mergeTwoLists(l1,l2.next);
            return l2;
        }
    }
相关推荐
小欣加油1 天前
leetcode56 合并区间
c++·算法·leetcode·职场和发展
threelab1 天前
Three.js 物理模拟着色器 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
武器大师721 天前
lv_binding_js 代码解读
开发语言·javascript·ecmascript
Patrick_Wilson1 天前
router.replace 之后紧跟 reload,页面为什么无限刷新?
javascript·react.js·浏览器
8Qi81 天前
LeetCode 516:最长回文子序列
算法·leetcode·职场和发展·动态规划
mONESY1 天前
JavaScript 栈、队列、数组与链表核心知识点总结
javascript·面试
ZengLiangYi1 天前
TypeScript 项目配置:tsconfig、ESM、路径别名
javascript·typescript·aigc
晓13131 天前
【Cocos Creator 3.x】篇——第二章 入门
前端·javascript·游戏引擎
想要成为糕糕手1 天前
前端必修课:JavaScript 数组与数据结构底层逻辑全解析
javascript·数据结构·面试
xiaofeichaichai1 天前
React Hooks
前端·javascript·react.js