首页 > 代码库 > Leetcode-Add Two Numbers

Leetcode-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

Solution:

 1 /** 2  * Definition for singly-linked list. 3  * public class ListNode { 4  *     int val; 5  *     ListNode next; 6  *     ListNode(int x) { 7  *         val = x; 8  *         next = null; 9  *     }10  * }11  */12 public class Solution {13     public ListNode addTwoNumbers(ListNode l1, ListNode l2) {14         if (l1==null) return l2;15         if (l2==null) return l1;16 17         ListNode preHead = new ListNode(0);18         ListNode end = preHead;19         int carry = 0;20         while (l1!=null || l2!=null){21             int val = carry;22             if (l1!=null) val += l1.val;23             if (l2!=null) val += l2.val;            24             carry = val/10;25             val = val%10;26             ListNode newNode = new ListNode(val);27             end.next = newNode;28             end = newNode;29             if (l1!=null) l1 = l1.next;30             if (l2!=null) l2 = l2.next;31         }32         if (carry!=0){33             ListNode newNode = new ListNode(carry);34             end.next = newNode;35         }36 37 38         return preHead.next;39         40     }41 }

 

Leetcode-Add Two Numbers