조컴퓨터

*21. Merge Two Sorted Lists 본문

LeetCode/Algorithms

*21. Merge Two Sorted Lists

챠오위 2021. 10. 17. 02:40

 

두 가지 배열을 합친 후 버블정렬인가 그거 하면 될듯... 

 

일단 잔다.

 

211017 14:32

합치는 것보다 두 가지를 비교해서 하나씩 끌어오는게 효율적일 것 같아 다음과 같은 방식으로 작성했다.

 

/**
 * 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 head = new ListNode();
        ListNode result = head;
        
        while( l1 != null && l2 != null ) {
            if( l1.val <= l2.val ) {
                result.next = l1;
                l1 = l1.next;
            } else {
                result.next = l2;
                l2 = l2.next;
            }
            result = result.next;
        }
        
        if (l1 != null) {
    	    result.next = l1;
        } else if (l2 != null) {
    	    result.next = l2;
        }
        
        return head.next;
    }
}

 

merged sort 방식을 활용했다. 

이 방식이 두 가지 List 를 합쳐서 버블정렬하는 것보다 시간적으로도 우위에 있다.

 

자세한건 이후에 작성

녹차팩 중인데 녹차가 흘러 내리는 중... ㅡㅡ;;

 

 

 

'LeetCode > Algorithms' 카테고리의 다른 글

27. Remove Element  (0) 2021.10.19
26. Remove Duplicates from Sorted Array  (0) 2021.10.17
*20. Valid Parentheses  (0) 2021.10.17
**14. Longest Common Prefix  (0) 2021.10.14
13. Roman to Integer  (0) 2021.10.13