From c3610b06e562920c4a67a7f783b23e96ceb26445 Mon Sep 17 00:00:00 2001 From: ITCharge Date: Thu, 1 Apr 2021 13:56:53 +0800 Subject: [PATCH] =?UTF-8?q?Add:=200021.=20=E5=90=88=E5=B9=B6=E4=B8=A4?= =?UTF-8?q?=E4=B8=AA=E6=9C=89=E5=BA=8F=E9=93=BE=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 ++ ...11\345\272\217\351\223\276\350\241\250.md" | 43 +++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 "Solutions/0021. \345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\351\223\276\350\241\250/0021. \345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\351\223\276\350\241\250.md" diff --git a/.gitignore b/.gitignore index b6e47617..667c80ce 100644 --- a/.gitignore +++ b/.gitignore @@ -127,3 +127,6 @@ dmypy.json # Pyre type checker .pyre/ + +# Custom +Temp \ No newline at end of file diff --git "a/Solutions/0021. \345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\351\223\276\350\241\250/0021. \345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\351\223\276\350\241\250.md" "b/Solutions/0021. \345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\351\223\276\350\241\250/0021. \345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\351\223\276\350\241\250.md" new file mode 100644 index 00000000..fd43f56d --- /dev/null +++ "b/Solutions/0021. \345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\351\223\276\350\241\250/0021. \345\220\210\345\271\266\344\270\244\344\270\252\346\234\211\345\272\217\351\223\276\350\241\250.md" @@ -0,0 +1,43 @@ +#### [0021. 合并两个有序链表](https://leetcode-cn.com/problems/merge-two-sorted-lists/) + +- 标签:链表 +- 关键词: + +## 题目大意 + +给定两个升序链表,将其合并为一个升序链表。 + +## 解题思路 + +利用归并排序的思想。 + +创建一个新的链表节点作为头结点(记得保存),然后判断 l1和 l2 头结点的值,将较小值的节点添加到新的链表中。 + +当一个结点添加到新的链表中之后,将对应的 l1 或 l2 链表向后移动一位。 + +然后继续判断当前 l1 结点和当前 l2 结点的值,继续将较小值的节点添加到新的链表中,然后将对应的链表向后移动一位。 + +这样,当 l1 或 l2 遍历到最后,最多有一个链表还有节点未遍历,则直接将该结点链接到新的链表尾部即可。 + +## 代码 + +```Python +class Solution: + def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: + newHead = ListNode(-1) + + curr = newHead + while l1 and l2: + if l1.val <= l2.val: + curr.next = l1 + l1 = l1.next + else: + curr.next = l2 + l2 = l2.next + curr = curr.next + + curr.next = l1 if l1 is not None else l2 + + return newHead.next +``` +