【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;
        }
    }
相关推荐
不会敲代码111 分钟前
解密JavaScript内存机制:从执行上下文到闭包的全景解析
javascript
NEXT0617 分钟前
React Hooks 进阶:useState与useEffect的深度理解
前端·javascript·react.js
老鼠只爱大米23 分钟前
LeetCode经典算法面试题 #46:全排列(回溯、交换、剪枝等五种实现方案详细解析)
算法·leetcode·剪枝·回溯·全排列·stj算法
踢足球09291 小时前
寒假打卡:2026-2-7
java·开发语言·javascript
im_AMBER1 小时前
Leetcode 114 链表中的下一个更大节点 | 删除排序链表中的重复元素 II
算法·leetcode
楚轩努力变强1 小时前
iOS 自动化环境配置指南 (Appium + WebDriverAgent)
javascript·学习·macos·ios·appium·自动化
历程里程碑1 小时前
普通数组----轮转数组
java·数据结构·c++·算法·spring·leetcode·eclipse
pp起床1 小时前
贪心算法 | part02
算法·leetcode·贪心算法
sin_hielo1 小时前
leetcode 1653
数据结构·算法·leetcode
John_ToDebug1 小时前
引擎深处的漫游者:构建浏览器JavaScript引擎的哲学与技艺
javascript·chrome·js