问题
给定两个分别代表非负整数的非空链表,数字以逆序存储于链表中,每个结点包含一位,将两数相加并以链表形式返回。假定两个数都不能以 0 开头,除非它们本身就是 0,你的返回结果也应如此。
样例
- Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
- Output: 7 -> 0 -> 8
- Explanation: 342 + 465 = 807.
实现
- class ListNode {
- int val;
- ListNode next;
-
- ListNode(int x) {
- val = x;
- }
-
- public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
- ListNode l3 = new ListNode(0);
- ListNode p = l3;
- ListNode pPre = null;
- while (l1 != null || l2 != null) {
- if (l1 != null) {
- p.val += l1.val;
- }
- if (l2 != null) {
- p.val += l2.val;
- }
- if (p.val > 9) {
- p.val -= 10;
- p.next = new ListNode(1);
- } else {
- p.next = new ListNode(0);
- }
- if (l1 != null) {
- l1 = l1.next;
- }
- if (l2 != null) {
- l2 = l2.next;
- }
- pPre = p;
- p = p.next;
- }
- if (p.val == 0) {
- pPre.next = null;
- }
- return l3;
- }
- }
如有问题请在下方留言,文章转载请注明出处,详细交流请加下方群组!请大佬不要屏蔽文中广告,因为它将帮我分担服务器开支,如果能帮忙点击我将万分感谢。
强调几点:(该留言由系统自动生成!)
1. 请不要刷广告,本站没有流量!
2. 我不回复虚假邮箱,因为回复了你也看不到!
3. 存在必须回复的隐藏内容时,可以直接使用表情框里的阿鲁表情!