문제링크 : 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 |