-1

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.

Example 1:

Input: l1 = [2,4,3], l2 = [5,6,4]
Output: [7,0,8]
Explanation: 342 + 465 = 807.

Example 2:

Input: l1 = [0], l2 = [0]
Output: [0]

Example 3:

Input: l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
Output: [8,9,9,9,0,0,0,1]
**
 * 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; }
 * }
 */
class Solution {
    public ListNode addTwoNumbers(ListNode l1, ListNode l2) 
    {
        ListNode result1=reverse1(l1);
         ListNode result2=reverse2(l1);
         int sum1=0;
    while(result1.next!=null)
    {
        sum1=(sum1*10)+result1.val;
        result1=result1.next;
    }
    int sum2=0;
    while(result2.next!=null)
    {
        sum2=(sum2*10)+result2.val;
        result2=result2.next;
    }
    int totalsum=sum1+sum2;
     ListNode dummy = new ListNode(0);
        ListNode temp = dummy;
        while(totalsum>0)
        {
            int rem=totalsum%10;
            temp.next.val=rem; // here error is shown
             temp=temp.next;
           
            totalsum=totalsum/10;

        }
        return dummy.next;
    }


        ListNode reverse1(ListNode head)
        {
             ListNode curr1=head;
            ListNode prev1=null;
          while(curr1!=null)
            { 
           
            ListNode temp=curr1.next;
            curr1.next=prev1;
            prev1=curr1;
            curr1=temp;
        }
        return prev1;
    }
    
    ListNode reverse2(ListNode head2)
        { 
            ListNode curr2=head2;
            ListNode prev2=null;
          while(curr2!=null)
            { 
           
            ListNode temp=curr2.next;
            curr2.next=prev2;
            prev2=curr2;
            curr2=temp;
        }
        return prev2;
    }
}  
Mark Rotteveel
  • 100,966
  • 191
  • 140
  • 197
  • Please could you take some time to format your code? The indentation at the moment is all over the place, which makes it very hard to read. It would also help to include a `main` method with the sample data, so we can just copy/paste/compile/run. – Jon Skeet Jan 21 '23 at 10:16
  • 1
    It's also hard to tell what the question is. You mention an error in the title of the question, but nowhere in the body of the question, and you don't tell us whether this is a compile-time error or an exception, or where it occurs. – Jon Skeet Jan 21 '23 at 10:17
  • you don't need a `reverse1` and `reverse2` method, methods can be reused and all you changed is the name of the parameter which doesn't matter. You also use the wrong one `reverse2(l1);` - `reverse1(l2);` should do. But if you remove the numbers from the method, like `reverse(l1); reverse(l2)` it becomes more clear that it's a reusable method. The error on `temp.next.val=rem;` makes sense, you never assign anything to `dummy.next` – zapl Jan 21 '23 at 10:25
  • sir how to remove this error .I have removed the keyword next from dummy.next still it is giving me the same error. – Prashant Singh Jan 21 '23 at 10:32

1 Answers1

0

This is a compile time error from a smart compiler. You didn't post the ListNode implementation, but I'm quite sure that on init the value of member next is null, so in your code

 ListNode dummy = new ListNode(0);
    ListNode temp = dummy;
    while(totalsum>0)
    {
        int rem=totalsum%10;
        temp.next.val=rem; // here error is shown
         temp=temp.next;
       
        totalsum=totalsum/10;

    }

temp.next(temp is a new Listnode) has no chance to be not null, as the compiler says...

Turo
  • 4,724
  • 2
  • 14
  • 27
  • sir i have update the ListNode immplementation in the code. sir plz tell what im supposed to edit in my code so that it can run succesfully – Prashant Singh Jan 21 '23 at 11:09
  • hint: use the constructer ListNode(int val, ListNode next) in the while loop to create a new linked list – Turo Jan 21 '23 at 11:53