2. Add Two Numbers -- JavaScript 해법

1102 단어
질문 설명 (https://leetcode-cn.com/problems/add-two-numbers/description/)
두 개의 비 공 링크 를 지정 하여 두 개의 비 마이너스 정 수 를 표시 합 니 다.자릿수 는 역순 으로 저장 되 고 그들의 모든 노드 는 하나의 숫자 만 저장 된다.두 수 를 더 해서 새로운 체인 시 계 를 되 돌려 줍 니 다.
너 는 숫자 0 을 제외 하고 이 두 숫자 모두 0 으로 시작 하지 않 을 것 이 라 고 가정 할 수 있다.
예시:
  :(2 -> 4 -> 3) + (5 -> 6 -> 4)
  :7 -> 0 -> 8
  :342 + 465 = 807

JS 정 답:
/**
 * Definition for singly-linked list.
 * function ListNode(val) {
 *     this.val = val;
 *     this.next = null;
 * }
 */
/**
 * @param {ListNode} l1
 * @param {ListNode} l2
 * @return {ListNode}
 */
var addTwoNumbers = function(l1, l2) {
    let dumpy = new ListNode(-1), node = new ListNode(-1);
    dumpy.next = node;
    let carry = 0, curSum = 0;
    while (l1 || l2 || carry) {
        curSum = (l1 ? l1.val : 0) + (l2 ? l2.val : 0) + carry;
        carry = curSum > 9 ? 1 : 0;
        curSum %= 10;
        if (l1) l1 = l1.next;
        if (l2) l2 = l2.next;
        node.next = new ListNode(curSum);
        node = node.next;
    }
    return dumpy.next.next;
};

좋은 웹페이지 즐겨찾기