力扣题目: ![](https://ask.qcloudimg.com/http-save/yehe-6412867/ef627666833a1bff39ca576ae8ef006e.png) 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
}
|