LeetCode,Go实现合并两个有序链表

您所在的位置:网站首页 合并两个单链表并排序 LeetCode,Go实现合并两个有序链表

LeetCode,Go实现合并两个有序链表

2024-07-10 07:49| 来源: 网络整理| 查看: 265

力扣题目:

LeetCode题目源地址:https://leetcode-cn.com/problems/merge-two-sorted-lists/

解题思路

首先我们定义一个头结点,遍历链表,将头结点的 Next 字段指向较小的那个链表的节点,然后头结点后移一位,再次遍历链表,将头结点的 Next 字段指向较小的那个链表的节点。。。如此循环,直至两个链表中有 nil 出现,说明有链表遍历结束,剩下的链表如果不为空则可以直接拼接在新链表后面,因为剩下的链表元素肯定大于新链表。

将 head 节点指向 l1 或 l2 中比较小的一个,如果相等则随便指向其中一个。head 节点后移,将 head 节点指向 l1 或 l2 中比较小的一个重复上述步骤,直至 l1 或 l2 链表中有遍历结束的为止。程序实现代码语言:javascript复制func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode { head := &ListNode{} result := head for l1 != nil && l2 != nil { if l1.Val < l2.Val { head.Next = l1 l1 = l1.Next } else { head.Next = l2 l2 = l2.Next } head = head.Next } if l1 != nil { head.Next = l1 } if l2 != nil { head.Next = l2 } return result.Next }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3