[알고리즘] Leetcode_2_Add_Two_Numbers

jeongjwon·2023년 3월 28일
0

알고리즘

목록 보기
13/48

Problem

Solve

 public static  ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        
        ListNode result = new ListNode();
        ListNode head = result;

        int sum = 0;
        
        while(l1 != null || l2 != null || sum != 0){
            if(l1 != null){
                sum +=l1.val;
                l1 = l1.next;
            }
            if(l2 != null){
                sum += l2.val; 
                l2 = l2.next;
            }
            ListNode temp = new ListNode(sum % 10);
            sum /= 10;
            result.next = temp;
            result = result.next;
        }
        
        return head.next;

    }

여기서 중점은 while문의 sum!=0 조건이다.

저 조건이 없을 시에 l1이나 l2의 노드 수만큼까지만 합이 계산된다. sum은 나머지로 값을 재할당해주기 때문에 sum이 0이 아닐때까지 이어져야한다.

이는 예제3에서 잘 보여주고 있다.
9999999 + 9999 = 8999000 (x)
9999999 + 9999 = 89990001 (o)

0개의 댓글