2013년 2월 7일 목요일

Add Two Numbers

 public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
  ListNode rv = new ListNode(0);
  ListNode tx = rv;

  ListNode t1 = l1;
  ListNode t2 = l2;

  boolean carrier = false;
  while (true) {
   int val = carrier ? 1 : 0;

   if (t1 != null) {
    val += t1.val;
    t1 = t1.next;
   }

   if (t2 != null) {
    val += t2.val;
    t2 = t2.next;
   }

   tx.val = (val % 10);
   carrier = (val > 9);

   if (t1 == null && t2 == null && !carrier)
    break;

   tx.next = new ListNode(0);
   tx = tx.next;
  }

  return rv;
 }

댓글 없음:

댓글 쓰기