美文网首页
21. 合并两个有序链表

21. 合并两个有序链表

作者: justonemoretry | 来源:发表于2020-06-06 22:41 被阅读0次

自己解法

这个题比较简单,就是挨个比较两个链表的节点,值较小的节点放到新建的队列,然后这个指针指向后面的节点,这个题基本就是考察了链表的遍历。

还有个小技巧是,在其中一个链表为空后,可以直接把另一个链表给到temp节点的next。

class Solution {

    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {

        ListNode headNode = new ListNode();

        ListNode temp = headNode;

        while (l1 != null && l2 != null) {

            if (l1.val <= l2.val) {

                temp.next = l1;

                l1 = l1.next; 

            } else {

                temp.next = l2;

                l2 = l2.next;

            }

            temp = temp.next;

        }

         temp.next = l1 == null ? l2 : l1;

        return headNode.next;

    }

}

官方解法

官方使用了个递归的思路,每次把较小值节点拿出来,让它的next指向后面递归生成链表,这样感觉没有迭代好理解,不过算是拓展思路吧。

class Solution {

    public ListNode mergeTwoLists(ListNode l1, ListNode l2) {

        if (l1 == null) {

            return l2;

        }

        else if (l2 == null) {

            return l1;

        }

        else if (l1.val < l2.val) {

            l1.next = mergeTwoLists(l1.next, l2);

            return l1;

        }

        else {

            l2.next = mergeTwoLists(l1, l2.next);

            return l2;

        }

    }

}

相关文章

  • leetcode 链表 [C语言]

    21. 合并两个有序链表 合并两个有序链表 61. 旋转链表 (快慢指针) 61. 旋转链表 相关标签 : 链表 ...

  • [Leetcode] 21. 合并两个有序链表

    21. 合并两个有序链表 来源: 21. 合并两个有序链表 1. 解题思路 递归或者非递归 2. 代码 2.1 ...

  • leetcode linked list

    21. 合并两个有序链表 83. 删除排序链表中的重复元素 21. 合并两个有序链表 160. 相交链表 第三个想...

  • LeetCode-21 合并两个有序链表

    题目:21. 合并两个有序链表 难度:简单 分类:链表 解决方案:链表的遍历 今天我们学习第21题合并两个有序链表...

  • LeetCode 21. 合并两个有序链表

    21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成...

  • 21. 合并两个有序链表

    20180923-摘抄自21. 合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定...

  • 21. 合并两个有序链表

    21.合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的...

  • [LeetCode]21-合并两个有序链表

    21. 合并两个有序链表将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的...

  • LeetCode 链表 > 21. 合并两个有序链表

    21. 合并两个有序链表将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的...

  • 每日Leetcode—算法(3)

    21.合并两个有序链表 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的...

网友评论

      本文标题:21. 合并两个有序链表

      本文链接:https://www.haomeiwen.com/subject/xpfozhtx.html