剑指offer25——合并两个有序链表

题目描述:输入两个递增排序的链表,合并这两个链表并使新链表中的节点仍然是递增排序的。

解题思路:双指针

分别指向两个链表的头,比较大小即可。

问题:如何合并?

建立伪头节点temp,节点cur指向temp,将比较后的节点插入到cur后,最后将不为null的链表中剩余节点添加到cur之后即可。

参考题解:https://leetcode-cn.com/problems/he-bing-liang-ge-pai-xu-de-lian-biao-lcof/solution/mian-shi-ti-25-he-bing-liang-ge-pai-xu-de-lian-b-2/

public ListNode mergeTwoList(ListNode l1, ListNode l2) {
        ListNode temp = new ListNode(0);
        ListNode cur = temp;
        while (l1 != null && l2 != null) {
            if (l1.val >= l2.val) {
                cur.next = l2;
                l2 = l2.next;
                cur = cur.next;
            } else {
                cur.next = l1;
                l1 = l1.next;
                cur = cur.next;
            }
        }
        cur.next = l1 != null ? l1 : l2;
        return temp.next;
    }

 

posted @ 2020-08-18 14:56  硬盘红了  阅读(60)  评论(0编辑  收藏  举报