[LeetCode] 445. Add Two Numbers II

Chobby·2026년 2월 25일

LeetCode

목록 보기
1008/1023

😎풀이

  1. Stack 자료구조를 통해 값을 기록하며 포인터를 가장 뒷 자릿수로 이동
  2. 끝자리부터, 각 자릿수를 더한 값을 ListNode에 할당하며, 이전 노드를 연결시킴
  3. 최종자리의 올림수까지 계산(10 이상의 수로 종료된 경우 1의 노드가 최전방 위치)하여 노드 생성 및 연결
function addTwoNumbers(l1: ListNode | null, l2: ListNode | null): ListNode | null {
    const l1Arr = []
    const l2Arr = []
    while(l1) {
        l1Arr.push(l1.val)
        l1 = l1.next
    }
    while(l2) {
        l2Arr.push(l2.val)
        l2 = l2.next
    }
    let carry = 0
    let prevNode = null
    while(l1Arr.length || l2Arr.length || carry) {
        const curL1 = l1Arr.pop() ?? 0
        const curL2 = l2Arr.pop() ?? 0
        const sum = curL1 + curL2 + carry
        const curNode = new ListNode(sum % 10, prevNode)
        carry = sum >= 10 ? 1 : 0
        prevNode = curNode
    }
    return prevNode
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글