2_Add Two Number
来源:互联网 发布:p2p网贷系统源码由来 编辑:程序博客网 时间:2024/06/17 21:48
一、题目
题目描述:
传入2个链表,比如2->4->3其实表示的是342,5->6->4其实表示的是465,将2个链表相加,也就是342+465=807,然后将807反转为链表7->0->8。其实就是大数相加问题。
二、解决
思路:通过2个链表同时扫描,用大数相加的方法,c表示进位,num表示当前的值,从头扫描到最后
public ListNode addTwoNumbers2(ListNode l1, ListNode l2) {int num = l1.val + l2.val;int c = 0;if (num > 9){ c = num / 10; num %= 10;} ListNode current = new ListNode(num);ListNode result = current;l1 = l1.next;l2 = l2.next;while (l1!=null && l2!=null){num = l1.val + l2.val + c;if (num > 9){c = num / 10;num %= 10;} else {c = 0;}ListNode temp = new ListNode(num);current.next = temp;current = current.next;l1 = l1.next;l2 = l2.next;}while (l1 != null){num = l1.val + c;if (num > 9){c = num / 10;num %= 10;} else {c = 0;}ListNode temp = new ListNode(num);current.next = temp;current = current.next;l1 = l1.next;} while (l2 != null){num = l2.val + c;if (num > 9){c = num / 10;num %= 10;} else {c = 0;}ListNode temp = new ListNode(num);current.next = temp;current = current.next;l2 = l2.next;}if (c != 0){ListNode temp = new ListNode(c);current.next = temp;current = current.next;}return result; }
0 0
- 2_Add Two Number
- 2_Add Two Numbers
- leetcode(2)_Add Two Numbers
- LeetCode 2_Add Two Numbers
- LeetCode 2_Add Two Numbers
- 【LeetCode】2_Add Two Numbers
- LeetCode之2_Add Two Numbers
- 0002_Add Two Numbers
- leetcode第一刷_Add Two Numbers
- Leetcode第二题_Add Two Numbers
- LeetCode---(2) Add Two Number
- LeetCode 2 Add Two Number
- 2,Add Two Number (LinkList Math)
- [Leetcode] Add Two Number
- 【leetcode】 add two number
- Add Two Number
- CareerCup Add two number
- LeetCode(Add Two Number)
- PopupWindow
- 工业设计如何从零开始学手绘
- -Java语法基础(概述)
- 浅谈iOS中MVVM的架构与团队协作
- scanner 死循环问题
- 2_Add Two Number
- 快手之家(aardio.net) - 构思
- android2.3平台上web页面(html5中使用frame)不能滑动、不允许缩放的解决方法
- 嵌入式硬件及接口开发实践
- 死锁 银行家算法
- 对象流注意点
- 自己编程实现更改电脑桌面背景并同时播放音乐
- IOS开发测试之单元测试中的理论知识
- iOS开发脚踏实地学习day12-通讯录和plist存储