LeetCode No21. 合併兩個有序連結串列
阿新 • • 發佈:2022-04-22
題目
將兩個升序連結串列合併為一個新的 升序 連結串列並返回。新連結串列是通過拼接給定的兩個連結串列的所有節點組成的。
示例 1:
輸入:l1 = [1,2,4], l2 = [1,3,4]
輸出:[1,1,2,3,4,4]
示例 2:
輸入:l1 = [], l2 = []
輸出:[]
示例 3:
輸入:l1 = [], l2 = [0]
輸出:[0]
提示:
兩個連結串列的節點數目範圍是 [0, 50]
-100 <= Node.val <= 100
l1 和 l2 均按 非遞減順序 排列
思路
兩個連結串列已經有序了,同時遍歷兩個連結串列,每次取小值,如果其中一個連結串列遍歷完了,那直接將另外一個連結串列拼接上即可,算是連結串列操作入門題吧。
AC程式碼
點選檢視程式碼
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode node = new ListNode(); ListNode head = node; while( l1!=null && l2!=null ) { if( l1.val<=l2.val ) { head.next = l1; l1 = l1.next; } else { head.next = l2; l2 = l2.next; } head = head.next; } if( l1!=null ) { head.next = l1; } if( l2!=null ) { head.next = l2; } return node.next; } }