LeetCode_21_合并两个有序链表

//将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
//
// 示例:
//
// 输入:1->2->4, 1->3->4
//输出:1->1->2->3->4->4
//
// Related Topics 链表

方法一:创建新链表

    class Solution {
        public ListNode mergeTwoLists(ListNode l1, ListNode l2) {
            //创建头结点
            ListNode head = new ListNode(0);
            //需要一个哨兵结点用来next
            ListNode pointer = head;
            
            while(l1 != null && l2 != null) {
                if(l1.val <= l2.val) {
                    pointer.next = l1;
                    l1 = l1.next;
                } else {
                    pointer.next = l2;
                    l2 = l2.next;
                }
                pointer = pointer.next;
            }
            //l1和l2总有一个会先遍历完,那么还没遍历完的直接续上即可
            if(l1.next == null) pointer.next = l2;
            fi(l2.next == null) pointer.next = l1;
            return head.next;
    }

    class ListNode {
        int val;
        ListNode next;
        ListNode(int x) {
            val = x;
        }
    }
Last modification:November 17th, 2019 at 08:28 pm