-
Leet code - 2. Add Two Number - Java알고리즘/알고리즘 문제 복기 2021. 3. 8. 20:47
leetcode.com/problems/add-two-numbers/
이전에 C++로 풀었던 것을 자바로 다시 한번 복기할겸 풀었다.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677/*** 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) {ListNode head = new ListNode();ListNode cur_pointer = head;int carry = 0;while(l1 != null && l2 != null) {int added_val = l1.val + l2.val + carry;if(carry > 0)carry = 0;if(added_val >= 10) {added_val %= 10;carry = 1;}cur_pointer.next = new ListNode(added_val);cur_pointer = cur_pointer.next;l1 = l1.next;l2 = l2.next;}while(l1 != null) {int added_val = l1.val + carry;if(carry > 0)--carry;if(added_val >= 10) {added_val %= 10;carry = 1;}cur_pointer.next = new ListNode(added_val);cur_pointer = cur_pointer.next;l1 = l1.next;}while(l2 != null) {int added_val = l2.val + carry;if(carry > 0)--carry;if(added_val >= 10) {added_val %= 10;carry = 1;}cur_pointer.next = new ListNode(added_val);cur_pointer = cur_pointer.next;l2 = l2.next;}while(carry > 0) {cur_pointer.next = new ListNode(carry);carry = 0;}return head.next;}}cs 다음과 같이 3항 연산자를 이용해 간단하게 풀이도 할 수 있는듯하다
'알고리즘 > 알고리즘 문제 복기' 카테고리의 다른 글
Leet code - 5. Longest Palindromic Substring(Java) (0) 2021.03.14 Leetcode - 3. Longest SubString Without Repeating Characters (0) 2021.03.08 Leetcode - 155. Min Stack (0) 2021.02.27 LeetCode - 617. Merge Two Binary Trees (0) 2021.02.26 LeetCode - 543. Diameter of Binary Code (0) 2021.02.26