https://leetcode.com/problems/add-two-numbers/description
A. 두개의 단방향 linked list가 주어질때 각 자리수는 숫자의 digit 자리수 값을 의미한다.
이때 주어진 두개의 리스트 값을 digit에 맞게 계산하여 다시 리스트로 반환하라.
Solution.
리스트가 단방향이다.
뒤집어야 하나, 생각해 봤지만, 그럴 필요 없이, 각 자리수 대로 합해주고 출력한다.
더보기
public ListNode AddTwoNumbers(ListNode l1, ListNode l2)
{
ListNode prev = null;
ListNode head = null;
bool bHasOverflow = false;
while(l1!=null || l2!=null || bHasOverflow)
{
int v1 = l1==null ? 0 : l1.val;
int v2 = l2==null ? 0 : l2.val;
int sum = v1 + v2;
sum = bHasOverflow ? sum + 1 : sum;
ListNode newNode = new ListNode( sum%10 );
if(head == null) head = newNode;
bHasOverflow = sum >= 10;
if(prev != null)
prev.next = newNode;
prev = newNode;
l1 = l1!=null ? l1.next : null;
l2 = l2!=null ? l2.next : null;
}
return head;
}
적절한 결과.
'Leetcode > Top 100 Liked' 카테고리의 다른 글
[Linked List][Easy] 21. Merge Two Sorted Lists. (0) | 2024.04.09 |
---|---|
[Linked List][Medium] 19. Remove Nth Node From End of List (0) | 2024.04.09 |
[Heap][Medium] 347. Top K Frequent Elements (0) | 2024.04.08 |
[Hashing][Easy] 1. Two Sum (0) | 2024.04.01 |
[Greedy][Easy] 121. Best Time to Buy and Sell Stock (0) | 2024.03.30 |