package com.zerroi.leetcode.Three23; public class MergeTwoLists { public static void main(String[] args) { ListNode l1 = new ListNode(1, new ListNode(2, new ListNode(4))); ListNode l2 = new ListNode(1, new ListNode(3, new ListNode(4))); SolutionSecond solutionSecond = new SolutionSecond(); solutionSecond.mergeTwoLists(l1, l2); } } class SolutionSecond { public ListNode mergeTwoLists(ListNode list1, ListNode list2) { if (list1 == null || list2 == null) { return list1 == null ? list2 : list1; } ListNode pre = new ListNode(-1); ListNode cur = pre; while (list1 != null && list2 != null) { if (list1.val <= list2.val) { cur.next = list1; list1 = list1.next; } else { cur.next = list2; list2 = list2.next; } cur = cur.next; if (list1 == null) { cur.next = list2; } if (list2 == null) { cur.next = list1; } } return pre.next; } }