LeetCode #21. Merge Two Sorted Lists プログラミング練習
問題:
難易度: easy
入力: ListNode
目的: 入力された二つのソートされたLinkedListをマージせよ
出力: ListNode
recursiveでもforでも回答できます。
基礎的な問題なので特に罠もなく一つずつ大きさを比較しながらマージしていきましょう。
注意すべき事:
- forで回答する場合はdummyのListを用意してマージしていく
以下回答です。
class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if(l1 == null) { return l2; } else if(l2 == null) { return l1; } if(l1.val < l2.val) { l1.next = mergeTwoLists(l1.next, l2); return l1; } else { l2.next = mergeTwoLists(l1, l2.next); return l2; } } }
whileの方が簡単ですが余分なメモリを使ってしまうのでrecursiveを使いました。
Time O(n)です。
今日は以上。
よいプログラミング生活を!