两数相加

两个链表表示非负整数,链表逆序存储了数据的每一位,求两个数之和。

 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         ListNode dummy = new ListNode(-1);
14         ListNode end = dummy;
15         int c = 0;
16         while(l1 != null && l2 != null) {
17             int s = l1.val + l2.val + c;
18             c = s / 10;
19             ListNode node = new ListNode(s % 10);
20             end = end.next = node;
21             l1 = l1.next;
22             l2 = l2.next;
23         }
24         while(l1 != null) {
25             int s = l1.val + c;
26             c = s / 10;
27             ListNode node = new ListNode(s % 10);
28             end = end.next = node;
29             l1 = l1.next;
30         }
31         while(l2 != null) {
32             int s = l2.val + c;
33             c = s / 10;
34             ListNode node = new ListNode(s % 10);
35             end = end.next = node;
36             l2 = l2.next;
37         }
38         if(c == 1) {
39             ListNode node = new ListNode(c);
40             end = end.next = node;
41         }
42         return dummy.next;
43     }
44 }

 

posted @ 2021-10-10 17:45  一塌糊涂的小废物  阅读(33)  评论(0)    收藏  举报