Advertisement
Guest User

Untitled

a guest
May 24th, 2015
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.42 KB | None | 0 0
  1. public class LinkedListUtils {
  2.    
  3.     public Node sum(Node num1, Node num2) {
  4.         if (num1 == null || num2 == null) {
  5.             throw new IllegalArgumentException();
  6.         }
  7.        
  8.         int number1 = getNumber(num1);
  9.         int number2 = getNumber(num2);
  10.         return convert(number1 + number2);
  11.     }
  12.    
  13.     private int getNumber(Node number) {
  14.         Node temp = number;
  15.         int sum = 0;
  16.         int factor = 1;
  17.         boolean isFirstDigit = true;
  18.        
  19.         while (temp != null) {
  20.             sum = sum * factor + temp.value;
  21.             if (isFirstDigit) {
  22.                 factor = 10;
  23.                 isFirstDigit = false;
  24.             }
  25.            
  26.             temp = temp.next;
  27.         }
  28.        
  29.         return sum;
  30.     }
  31.    
  32.     private Node convert(int sum) {
  33.         List<Integer> digits = new ArrayList<>();
  34.         while (sum > 0) {
  35.             int digit = sum % 10;
  36.             digits.add(digit);
  37.             sum = sum / 10;
  38.         }
  39.        
  40.         Node head = null;
  41.         Node temp = null;
  42.        
  43.         for (int i = digits.size() - 1, i >= 0; i++) {
  44.             Node node = new Node(digits.get(i));
  45.             if (head == null) {
  46.                 head = node;
  47.                 temp = head;
  48.             } else {
  49.                 temp.next = node;
  50.                 temp = temp.next;
  51.             }
  52.         }
  53.        
  54.         return head;
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement