Leetcode Exercise

来源:互联网 发布:网络电子游戏官网 编辑:程序博客网 时间:2024/04/30 13:31

Question:Add Two Numbers

You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8

Answer

/** * Definition for singly-linked list. * public class ListNode { *     int val; *     ListNode next; *     ListNode(int x) { val = x; } * } */public class Solution {    public ListNode addTwoNumbers(ListNode l1, ListNode l2) {          ListNode lNode=new ListNode(0);          ListNode origin=lNode;          int carry=0;          while(l1!=null&&l2!=null){              if(l1.val+l2.val+carry<10){                  lNode.val=l1.val+l2.val+carry;                  carry=0;              }else{                  lNode.val=(l1.val+l2.val+carry)%10;                  carry=1;              }              l1=l1.next;              l2=l2.next;              if(l1!=null&&l2!=null){                  lNode.next=new ListNode(0);                  lNode=lNode.next;              }          }           if(l1==null&&l2==null){              if(carry==0){                  return origin;              }else{                  lNode.next=new ListNode(1);                  lNode=null;              }          }          if(l1!=null){              lNode.next=new ListNode(0);              lNode=lNode.next;              while(l1!=null){                  if(l1.val+carry<10){                      lNode.val=l1.val+carry;                      carry=0;                  }else{                      lNode.val=(l1.val+carry)%10;                      carry=1;                  }                  l1=l1.next;                  if(l1!=null){                      lNode.next=new ListNode(0);                      lNode=lNode.next;                   }              }              if(carry==1){                  lNode.next=new ListNode(1);                  lNode=null;              }          }          if(l2!=null){              lNode.next=new ListNode(0);              lNode=lNode.next;              while(l2!=null){                  if(l2.val+carry<10){                      lNode.val=l2.val+carry;                      carry=0;                  }else{                      lNode.val=(l2.val+carry)%10;                      carry=1;                  }                  l2=l2.next;                  if(l2!=null){                      lNode.next=new ListNode(0);                      lNode=lNode.next;                   }              }              if(carry==1){                  lNode.next=new ListNode(1);                  lNode=null;              }          }          return origin;    }}
0 0
原创粉丝点击