C# 寫 LeetCode easy #21 Merge Two Sorted Lists
阿新 • • 發佈:2018-11-30
21、 Merge Two Sorted Lists
Merge two sorted linked lists and return it as a new list. The new list should be made by splicing together the nodes of the first two lists.
Example:
Input: 1->2->4, 1->3->4 Output: 1->1->2->3->4->4
程式碼:
public class ListNode { public intval; public ListNode next; public ListNode(int x) { val = x; } } static void Main(string[] args) { ListNode l11=new ListNode(1); ListNode l12 = new ListNode(3); ListNode l13 = new ListNode(4); l11.next = l12; l12.next = l13; ListNode l21 = new ListNode(2); ListNode l22= new ListNode(3); ListNode l23 = new ListNode(5); l21.next = l22; l22.next = l23; var res=MergeTwoSortedLists(l11, l21); while (res != null) { Console.Write(res.val); res = res.next; } Console.ReadKey(); } private static ListNode MergeTwoSortedLists(ListNode l1, ListNode l2) {if (l1 == null) return l2; if (l2 == null) return l1; if (l1.val < l2.val) { l1.next = MergeTwoSortedLists(l1.next, l2); return l1; } else { l2.next = MergeTwoSortedLists(l1, l2.next); return l2; } }
解析:
輸入:兩個連結串列
輸出:合併後的連結串列
思想:
三種情況分別討論,並且用遞迴的思想。
時間複雜度:O(n)