本文共 1399 字,大约阅读时间需要 4 分钟。
将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
原链表:l1 = [1,2,4],l2 = [1,3,4]
合并后:[1,1,2,3,4,4]public class Code_04 { public static void main(String[] args) { ListNode n = new ListNode(1); ListNode l1 = n; for (int i = 3; i <= 5; i = i + 2) { n.next = new ListNode(i); n = n.next; } ListNode n2 = new ListNode(2); ListNode l2 = n2; for (int i = 4; i <= 6; i = i + 2) { n2.next = new ListNode(i); n2 = n2.next; } Code_04 c = new Code_04(); System.out.println("原链表1:" + l1); System.out.println("原链表2:" + l2); System.out.println("合并后:" + c.mergeTwoLists(l1, l2)); } public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1 == null) { return l2; } if (l2 == null) { return l1; } ListNode mergeNode = new ListNode(); ListNode pre = mergeNode; //比较两个链表当前的值,值小的链表就把引用赋给mergeNode,并向后移动一位重新赋值给自己,同时pre指向值小的那个节点 while (l1 != null && l2 != null) { if (l1.val <= l2.val) { pre.next = l1; l1 = l1.next; } else { pre.next = l2; l2 = l2.next; } pre = pre.next; } pre.next = l1 == null ? l2 : l1; return mergeNode.next; }}
转载地址:http://yhlrb.baihongyu.com/