내가 작성한 코드 리뷰2 -Add Two Numbers

ACAI BERRY DEVELOVER·2023년 2월 15일
0
post-thumbnail

leetCode_2.AddTwoNumbers

"You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order, and each of their nodes contains a single digit. Add the two numbers and return the sum as a linked list.

You may assume the two numbers do not contain any leading zero, except the number 0 itself."

/**
 * 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; }
 * }
 */```
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {

		ListNode result = new ListNode();
		ListNode target = result;
		
		int carry = 0;
		
		while(l1 != null || l2 !=null) {
			
			
			int val1 = 0;
			int val2 = 0;
			
			
			
			if(l1 != null) {val1 = l1.val;}
			if(l2 != null) {val2 = l2.val;}
	
			
			int sum = (val1 + val2 + carry);
			
			target.val = sum%10;
			
			if(sum>=10) {
				carry = 1;
			}else {carry =0;}
			
			
			if(l1 != null ) {
				l1 = l1.next;
			}
			
			if(l2 != null) {
				l2 = l2.next;
			}
			
			if(l1 !=null || l2 != null ) {
				
				target.next = new ListNode();
				target = target.next;
				
			}
				
			}
		
		if (carry == 1) {
			target.next = new ListNode(1);
		}
			
		return result;
		}
		

	public static ListNode addTwoNumbers01(ListNode l1 , ListNode l2) {
		
		ListNode dummyHead = new ListNode(0);
		ListNode curr = dummyHead;
		int carry =0;
		
		
		while(l1 !=null || l2 !=null || carry !=0) {
			
			int val1 = (l1 != null) ? l1.val :0;
			int val2 = (l2 !=null) ? l2.val:0;
			
			int sum = carry + val1 + val2;
			
			 carry = sum/10;
			 
			 curr.next = new ListNode(sum%10);
			 curr = curr.next;
			 
			if(l1 != null) {
				l1 = l1.next;
			}
			if(l2 != null) {
				l2 = l2.next;
			}
			
			
		}
		return dummyHead.next;
			
profile
쓸때 대충 쓰지 말고! 공부하면서 써!

0개의 댓글