这是数据结构和算法相关的介绍
1.两数之和
题目描述:给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。
示例 1:
2 -> 4->3;
5->6->4;
返回结果:
7-> 0->8;
示例:
1 2 3
| 输入:l1 = [2,4,3], l2 = [5,6,4] 输出:[7,0,8] 解释:342 + 465 = 807.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode prev = new ListNode(0); int carry = 0; ListNode cur = prev; while(l1!=null || l2!=null){ int x= l1 !=null ? l1.val : 0; int y = l2 !=null ? l2.val : 0; int sum = x + y + carry; carry = sum / 10; sum = sum % 10; cur.next = new ListNode(sum); cur = cur.next; if(l1 !=null){ l1 = l1.next; } if(l2 !=null){ l2 = l2.next; } } if(carry == 1){ cur.next = new ListNode(carry); } return prev.next; } }
|