LeetCode笔记 -- Add Two Number
来源:互联网 发布:数据的加密文件 编辑:程序博客网 时间:2024/05/16 03:30
这个题是用链表的结构实现加法,由于学习C++的时候接触过链表,所以这个题还算完成的顺利。
这个题要求链表为单向链表,一个链表对象包含着储存的数据和下个节点的地址。java的实现和C++大同小异。
class ListNode { int val; ListNode next; ListNode(int x) { val = x; }}public class AddTwoNumber { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode result = new ListNode(0); ListNode t = result, p = l1, q = l2; int carry = 0; while (p!= null && q != null){ int sum = p.val + q.val + carry; carry = 0; if (sum > 9) { sum -= 10; carry = 1; } t.next = new ListNode(sum); t = t.next; p = p.next; q = q.next; } while (p != null){ int sum = p.val + carry; carry = 0; if (sum > 9) { sum -= 10; carry = 1; } t.next = new ListNode(sum); t = t.next; p = p.next; } while (q != null){ int sum = q.val + carry; carry = 0; if (sum > 9) { sum -= 10; carry = 1; } t.next = new ListNode(sum); t = t.next; q = q.next; } if (carry == 1) { t.next = new ListNode(1); } return result.next; }}
标答版本见LeetCode网站吧。
在这我说说我发现的几点要有意思的地方:
1.感觉这个东西的设计暗含着全加器的理念。
2.注意最后一个进位是否为一。
3.这个读取两个链表的过程和归并排序有异曲同工之妙。
阅读全文
1 0
- LeetCode笔记 -- Add Two Number
- [Leetcode] Add Two Number
- 【leetcode】 add two number
- LeetCode(Add Two Number)
- LEETCODE: Add Two Number
- leetcode-Add Two Number
- LeetCode Add Two Number
- Add Two Number - Leetcode
- LeetCode - Add Two Number
- LeetCode---(2) Add Two Number
- leetcode--P2 Add Two Number
- Leetcode 2. Add Two Number
- 【LeetCode】 002. Add Two Number
- leetcode algorithm2 add two number
- LeetCode 2 Add Two Number
- Leetcode练习-Add Two Number
- LeetCode算法题目:Add-Two-Number解决
- leetcode笔记--Add Two Numbers
- 《Spring实战》-Craig walls 著
- Linux指令之老ls,cp,rm,mv
- linux下安装mysql
- B
- html5新特性总结
- LeetCode笔记 -- Add Two Number
- LinuxStudyNote(40)-RPM包的命名规则
- 深度学习(3):优化神经网络(1)
- leetcode 344. Reverse String 反转字符串
- 51nod 1050 循环数组最大子段和
- Hadoop问题:hadoop集群NameNode成功启动,而datanode未启动
- Ubuntu 安装配置ftp
- python数与字符串
- Maven 管理SSM框架的pom.xml配置文件