문제링크 : https://leetcode.com/problems/add-two-numbers/
문제풀이
두 링크드 리스트의 각 숫자끼리 짝지어 차례로 더하는 문제이다.
링크드 리스트의 길이가 서로 다를 때 오류가 발생하여 한쪽 값이 null이면 숫자 0을 더하도록 수정했다.
소스코드
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode nextNode = null; ListNode result = null; int next = 0; while (true) { if (l1 == null && l2 == null) break; int val1 = l1 == null ? 0 : l1.val; int val2 = l2 == null ? 0 : l2.val; // 한쪽 길이가 다를 때 null뜸 int sum = val1 + val2 + next; if (result == null) { result = new ListNode(sum % 10); nextNode = result; } else { nextNode.next = new ListNode(sum % 10); nextNode = nextNode.next; } l1 = l1 == null ? null : l1.next; l2 = l2 == null ? null : l2.next; next = sum / 10; } if (next != 0) nextNode.next = new ListNode(next); return result; } }
'Algorithm > 문제풀이' 카테고리의 다른 글
[LeetCode] 4번: Median of Two Sorted Arrays (0) | 2019.06.30 |
---|---|
[LeetCode] 3번: Longest Substring Without Repeating Characters (0) | 2019.06.29 |
[LeetCode] 1번: Two Sum (0) | 2019.06.28 |
[백준] 4963번: 섬의 개수 (0) | 2019.06.28 |
[백준] 10828번: 스택 (0) | 2019.06.28 |