[java] dccX

Viewer

  1. /**
  2.  * Definition for singly-linked list.
  3.  * public class ListNode {
  4.  *     int val;
  5.  *     ListNode next;
  6.  *     ListNode() {}
  7.  *     ListNode(int val) { this.val = val; }
  8.  *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
  9.  * }
  10.  */
  11. class Solution {
  12.     public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
  13.         
  14.         l1=reverseList(l1);
  15.         l2=reverseList(l2);
  16.  
  17.         
  18.         ListNode dummy = new ListNode(0);
  19.         ListNode temp = dummy;
  20.         int carry = 0;
  21.         while(l1!=null || l2!=null || carry==1){
  22.             int sum = 0;
  23.             
  24.             if(l1!=null){
  25.                 sum+=l1.val;
  26.                 l1 = l1.next;
  27.             }
  28.             
  29.             if(l2!=null){
  30.                 sum+=l2.val;
  31.                 l2 = l2.next;
  32.             }
  33.             
  34.             sum = sum+carry;
  35.             carry = sum/10;
  36.             ListNode node = new ListNode(sum%10);
  37.             temp.next = node;
  38.             temp = temp.next;
  39.         }
  40.        
  41.         return reverseList(dummy.next);
  42.     }
  43.     
  44.     private ListNode reverseList(ListNode l1){
  45.         ArrayList<Integer> arr = new ArrayList<>();
  46.         ListNode newnode = l1;
  47.         while(newnode!=null){
  48.             arr.add(newnode.val);
  49.             newnode=newnode.next;
  50.         }
  51.         Collections.reverse(arr);
  52.         newnode = l1;
  53.         for(int i=0 ; i<arr.size() ; i++){
  54.             newnode.val = arr.get(i);
  55.             newnode = newnode.next;
  56.         }
  57.         return l1;
  58.     } 
  59. }

Editor

You can edit this paste and save as new:


File Description
  • dccX
  • Paste Code
  • 30 Jun-2022
  • 1.53 Kb
You can Share it: