숫자 두 개 더하기 - Daily JS(22일차)
두 개의 음수가 아닌 정수를 나타내는 두 개의 비어 있지 않은 연결 목록이 제공됩니다. 숫자는 역순으로 저장되며 각 노드에는 단일 숫자가 포함됩니다. 두 숫자를 더하고 합계를 연결 리스트로 반환합니다.
숫자 0 자체를 제외하고 두 숫자에 선행 0이 포함되어 있지 않다고 가정할 수 있습니다.
예
예 1:
Input: l1 = [2,4,3], l2 = [5,6,4]
Output: [7,0,8]
Explanation: 342 + 465 = 807.
예 2:
Input: l1 = [0], l2 = [0]
Output: [0]
예 3:
Input: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
Output: [8,9,9,9,0,0,0,1]
제약:
0 <= Node.val <= 9
해결책
/**
* Definition for singly-linked list.
* function ListNode(val, next) {
* this.val = (val===undefined ? 0 : val)
* this.next = (next===undefined ? null : next)
* }
*/
/**
* @param {ListNode} l1
* @param {ListNode} l2
* @return {ListNode}
*/
var addTwoNumbers = function(l1, l2) {
if (l1 == null && l2 == null) return 0;
let dummie = new ListNode();
let node = dummie;
let carrier = false;
while (l1 || l2 || carrier) {
let new_value = 0;
// sum nodes if availible
if (l1) [new_value, l1] = [new_value + l1.val, l1.next];
if (l2) [new_value, l2] = [new_value + l2.val, l2.next];
// take care of the carrier
if (carrier) [new_value, carrier] = [new_value + 1, false];
if (new_value >= 10) carrier = true;
// append new node
node.next = new ListNode(new_value % 10);
node = node.next;
}
return dummie.next;
};
LeetCode 문제:
https://leetcode.com/problems/add-two-numbers/
시리즈를 즐기고 계시기를 바랍니다. 그렇다면 ❤️ 및 를 누르는 것을 잊지 마세요. 나중에 사용할 수 있도록 북마크할 수도 있습니다. 질문이나 제안 사항이 있으면 주저하지 말고 삭제하십시오.
감사합니다 다음 포스팅에서 뵙겠습니다.
Reference
이 문제에 관하여(숫자 두 개 더하기 - Daily JS(22일차)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tanvirrahman/add-two-numbers-daily-js-day-22-5al6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)