Untitled

 avatar
unknown
java
a year ago
1.2 kB
7
Indexable
public class Solution {

  public ListNode reverse(ListNode head)
  {
    ListNode prev=null;
    ListNode curr=head;

    while(curr!=null){

      ListNode nextNode=curr.next;
      curr.next=prev;
      prev=curr;
      curr=nextNode;

      if(nextNode!=null)
      {
        nextNode=nextNode.next;
      }
    }

    return prev;
  }
	public ListNode addTwoNumbers(ListNode A, ListNode B) {
	    //You can code here

      ListNode r1=reverse(A);
      ListNode r2=reverse(B);

      ListNode ans=null;
      ListNode tempNode=null;
      int carry=0;

      while(r1!=null || r2!=null || carry!=0){

        int sum=carry;

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

        if(r2!=null){
          sum+=r2.val;
          r2=r2.next;

        }

        int digit=sum%10;
        carry=sum/10;

        ListNode newNode = new ListNode(digit);

        if(ans==null){

          ans=tempNode=newNode;
        }
        else{

          tempNode.next=newNode;
          tempNode=tempNode.next;
        }


      }

      return reverse(ans);




      
	}
}
Editor is loading...
Leave a Comment