2. Add Two Numbers

두 개의 음수가 아닌 정수를 나타내는 두 개의 비어 있지 않은 연결 목록이 제공됩니다. 숫자는 역순으로 저장되며 각 노드에는 단일 숫자가 포함됩니다.
두 숫자를 더하고 합계를 연결된 목록으로 반환

2. Add Two Numbers

두 노드의 합에 대한 몫과 나머지값을 구하면서 순차적으로 처리한다.

class Solution {
    
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        // 처음에 어떤 노드가 될지 모르므로 더미 노드를 생성한다.
        ListNode head = new ListNode();
        
        // 헤드 포인터를 리턴해야 하므로 작업 포인트 노드 변수를 선언한다.
        ListNode p = head;

        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;
            }

            p.next = new ListNode(sum % 10);
            p = p.next;
            
            // 오버플로우
            sum = sum / 10;
        }
        
        return head.next;
    }
}





© 2017. by yeopoong.github.io

Powered by yeopoong