Merge Two Sorted Lists

Hyor·2022년 3월 30일
0
post-custom-banner

Input: list1 = [1,2,4], list2 = [1,3,4]
Output: [1,1,2,3,4,4]
Input: list1 = [], list2 = []
Output: []
Input: list1 = [], list2 = [0]
Output: [0]

처음에는 배열을 합치고 정렬만 하면되는 것인지 알고 concat 과 sort 를 써서 return 하였다. 하지만 문제내용 Linked List 문제였다.

Linked List 는 일반 배열과 다르게 각 요소끼리 연결을 이용하여 List화 시킨것이다. 즉 array 함수들 사용 못한다.

결국은 다른 사람 답안을 참고하였다. head를 시작으로 cur에 담고 cur.next 에 다음으로 들어갈 요소를 저장 cur1, cur2를 변경하면서 요소가 null일때까지 반복하는것이다.

var mergeTwoLists = function (l1, l2) {
  const head = new ListNode();
  let cur = head;
  let cur1 = l1;
  let cur2 = l2;
  while (cur1 !== null && cur2 !== null) {
    if (cur1.val < cur2.val) {
      cur.next = cur1;
      cur1 = cur1.next;
    } else {
      cur.next = cur2;
      cur2 = cur2.next;
    }
    cur = cur.next;
  }
  if (cur1 !== null) {
    cur.next = cur1;
  }
  if (cur2 !== null) {
    cur.next = cur2;
  }
  return head.next;
};
profile
개발 노트
post-custom-banner

0개의 댓글