문제 요약
비어있지 않은 두개의 링크드 리스트를 준다. 이 링크드 리스트는 음수가 아닌 정수로 이루어져있고 역순으로 저장돼있다
두 리스트를 더해서 링크드 리스트로 반환하라
제공되는 Linked List는 다음과 같다
function ListNode(val, next) {
this.val = (val===undefined ? 0 : val)
this.next = (next===undefined ? null : next)
}
example
주어지는 정수가 243 과 564 라면
3-> 4-> 2 리스트와
4-> 6-> 5 리스트가 주어진다
이 둘을 더해서
7-> 0-> 8의 리스트를 반환하는 함수를 작성하면 되는 것
풀이
function ListNode(val, next) {
this.val = (val === undefined ? 0 : val)
this.next = (next === undefined ? null : next)
}
let l1 = new ListNode(2, new ListNode(4, new ListNode(3,null)));
let l2 = new ListNode(5, new ListNode(6, new ListNode(4,null)));
const addTwoNumbers = function(l1, l2) {
let newList = new ListNode(0);
let pointer = newList;
let carry = 0;
while (l1||l2||carry){
const number1 = l1 ? l1.val : 0;
const number2 = l2 ? l2.val : 0;
let sum = number1 + number2 + carry;
carry = Math.floor(sum / 10);
sum = sum % 10;
pointer.next = new ListNode(sum);
pointer = pointer.next;
l1 = l1 ? l1.next : null;
l2 = l2 ? l2.next : null;
}
return newList.next;
};
console.log(addTwoNumbers(l1,l2));
'Algorithm > 문제' 카테고리의 다른 글
leetcode. ZigZag Conversion (0) | 2021.01.18 |
---|---|
leetcode. Longest Substring Without Repeating Characters (0) | 2021.01.16 |
leetcode. Two Sum (0) | 2021.01.11 |
algospot. PICNIC (미해결) (0) | 2021.01.10 |
baekjoon. 단어 정렬 (0) | 2021.01.04 |