Description
You are given the heads of two sorted linked lists list1
and list2
.
Merge the two lists in a one sorted list. The list should be made by splicing together the nodes of the first two lists.
Return the head of the merged linked list.
Example 1:
Input: list1 = [1,2,4], list2 = [1,3,4]
Output: [1,1,2,3,4,4]
Example 2:
Input: list1 = [], list2 = []
Output: []
Example 3:
Input: list1 = [], list2 = [0]
Output: [0]
Constraints:
- The number of nodes in both lists is in the range
[0, 50]
.
-100 <= Node.val <= 100
- Both
list1
and list2
are sorted in non-decreasing order.
Code
Time Complexity: O(N), Space Complexity: O(1)
Direct Pointer
C:
C++:
Pointer to Pointer (Indirect Pointer)
想避免組態暫時節點的空間 (即上方程式碼中的 malloc
),該怎麼做?運用上述 indirect pointer 的技巧(因為 indirect pointer 只需要改變 address,所以不需要用到 malloc):
C:
C++:
Source