Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class LinkedListUtils {
- public Node sum(Node num1, Node num2) {
- if (num1 == null || num2 == null) {
- throw new IllegalArgumentException();
- }
- int number1 = getNumber(num1);
- int number2 = getNumber(num2);
- return convert(number1 + number2);
- }
- private int getNumber(Node number) {
- Node temp = number;
- int sum = 0;
- int factor = 1;
- boolean isFirstDigit = true;
- while (temp != null) {
- sum = sum * factor + temp.value;
- if (isFirstDigit) {
- factor = 10;
- isFirstDigit = false;
- }
- temp = temp.next;
- }
- return sum;
- }
- private Node convert(int sum) {
- List<Integer> digits = new ArrayList<>();
- while (sum > 0) {
- int digit = sum % 10;
- digits.add(digit);
- sum = sum / 10;
- }
- Node head = null;
- Node temp = null;
- for (int i = digits.size() - 1, i >= 0; i++) {
- Node node = new Node(digits.get(i));
- if (head == null) {
- head = node;
- temp = head;
- } else {
- temp.next = node;
- temp = temp.next;
- }
- }
- return head;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement