Free Lines Arrow
본문 바로가기
Algorithm/LeetCode

[leetCode] 2. Add Two Numbers

by skahn1215 2022. 4. 16.
728x90
반응형

문제

 

분석

1. 비어져 있는 리스트가 올수 없다.

2. 역순으로 되어 있다. 

3. 두개의 수를 더했을때 carry 가 발생할 것을 생각 하여 변수로 둔다.

  • carray + num1 + num2 가 되겠다.

4. 함정 발견 ListNode 로 되어 있기 때문에 Header 를 가르키는 객체를 만들어야 한다.

 

구현

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
        int num = 0;
        int carry =0;
        ListNode head = new ListNode();
        ListNode current = new ListNode();
        head = current;
        while(l1 != null || l2 != null) {
            num = 0;
            if (l1 != null) {
                num = l1.val;
                l1 = l1.next;
            } 
            if (l2 != null) {
                num += l2.val;
                l2 = l2.next;
            }
            num += carry;
           if (num > 9) {
               carry = 1;
           } else {
               carry = 0;
           }
            current.next = new ListNode(num % 10);
            current = current.next;
        }
        
        if (carry != 0) {
            current.next = new ListNode(1);
            current = current.next;
        }
      
        return head.next;
    }
}

 

 

결과

 

 

 

leetcode 문제:

https://leetcode.com/problems/add-two-numbers/submissions/

 

Add Two Numbers - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

728x90
반응형

'Algorithm > LeetCode' 카테고리의 다른 글

[LeetCode] 14. Longest Common Prefix  (0) 2022.04.30
[LeetCode] 13.Roman to Integer  (0) 2022.04.23

댓글