• 剑指 Offer 25. 合并两个排序的链表(简单)


    通过率 72.9%

    题目链接

    题目描述:

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

    示例1:

    输入:1->2->4, 1->3->4
    输出:1->1->2->3->4->4

    限制:

    0 <= 链表长度 <= 1000

    思路:

    类似归并排序,设双指针分别指向l1和l2,根据节点值的大小来判断节点添加顺序,不过有个细节要注意(看官网精选题解):

    • 头节点的确定:一开始我只想到先判断l1和l2的头节点大小,从而将头节点小的那个作为res返回结果的头节点,也是看了Krahets大神的题解才知道还有引入伪头节点这个方法,这样就不用特判l1和l2的头节点了,最后返回res.next就行了,秒啊

    另外,当l1或l2为空跳出合并循环时,可以直接用三元表达式判断将哪个添加到末尾,以节省代码量

     1 /*JavaScript*/
     2 /**
     3  * Definition for singly-linked list.
     4  * function ListNode(val) {
     5  *     this.val = val;
     6  *     this.next = null;
     7  * }
     8  */
     9 /**
    10  * @param {ListNode} l1
    11  * @param {ListNode} l2
    12  * @return {ListNode}
    13  */
    14 var mergeTwoLists = function(l1, l2) {
    15     const res = new ListNode(0)
    16     let p = res
    17     while(l1 && l2) {
    18         if(l1.val <= l2.val) {
    19             p.next = l1
    20             l1 = l1.next
    21         } else {
    22             p.next = l2
    23             l2 = l2.next
    24         }
    25         p = p.next
    26     }
    27     p.next = l1 ? l1 : l2
    28     return res.next
    29 };
  • 相关阅读:
    hibernate的核心配置
    hibernate的映射配置
    数据库的维护
    索引
    数据库规范化设计
    数据控制DCL
    触发器
    SQL存储过程简介
    Transact-SQL简介
    sysdatabaes表与sysobjects表
  • 原文地址:https://www.cnblogs.com/wwqzbl/p/15203676.html
Copyright © 2020-2023  润新知