[LeetCode] 2. Add Two Numbers

Chobby·2024년 8월 1일
1

LeetCode

목록 보기
39/194

노드간의 연결을 확인할 수 있는 실력을 가졌는지 판별할 수 있는 문제

function addTwoNumbers(l1: ListNode | null, l2: ListNode | null): ListNode | null {
    // 결과를 저장할 더미 노드 생성
    let dummyHead = new ListNode(0);
    let current = dummyHead;
    let carry = 0;  // 올림 수 초기화

    // l1과 l2 중 하나라도 남아있거나 올림 수가 있는 동안 계속 반복
    while (l1 !== null || l2 !== null || carry > 0) {
        // l1과 l2의 현재 값을 가져옴 (없으면 0으로 처리)
        const x = l1 ? l1.val : 0;
        const y = l2 ? l2.val : 0;

        // 현재 자릿수의 합 계산 (이전 올림 수 포함)
        const sum = carry + x + y;
        carry = Math.floor(sum / 10);  // 새로운 올림 수 계산
        current.next = new ListNode(sum % 10);  // 현재 자릿수 값으로 새 노드 생성

        // 포인터들을 다음으로 이동
        current = current.next;
        if (l1) l1 = l1.next;
        if (l2) l2 = l2.next;
    }

    // 더미 노드의 다음 노드부터가 실제 결과이므로 이를 반환
    return dummyHead.next;
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글