leetcode 2:Add Two Numbers
来源:互联网 发布:中国铁塔 网络强国 编辑:程序博客网 时间:2024/04/26 18:16
Add Two Numbers
问题描述
You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return it as a linked list.
我的解法
慢慢开始自己得到一个问题的解法了,好开心……虽然只是链表的一些基础问题。
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
public ListNode addTwoNumbers (ListNode l1,ListNode l2) { ListNode l3 = null;//最终的结果 ListNode r = null; int carry = 0; //1:首先算一下两个链表都不为空时的情况。 while (l1 != null && l2 != null) { int value = l1.val + l2.val + carry; if (value >= 10) { value = value % 10; carry = 1; } else { carry = 0; } //将得到的结果链接到l3的链表下 if (l3 == null) { l3 = r = new ListNode(value); } else { r = r.next = new ListNode(value); } l1 = l1.next; l2 = l2.next; } //2:当我们两个链表中有一个是空的时候,说明我们算完了,开始后续的进位操作 //如果我们没有进位那么问题就会很简单 if (carry == 0) { if (l1 != null) { r.next = l1; } else { r.next = l2; } } else {//如果有进位就得再继续做 if (l1 != null) { while (carry != 0 && l1 != null) { int value = (l1.val + carry); if (value >= 10) { value = value % 10; carry = 1; } else { carry = 0; } r = r.next = new ListNode(value); l1 = l1.next; } //什么时候不进位了,直接将最后的链表连过来 if (carry == 0) { r.next = l1; } else { r.next = new ListNode(carry);//别忘了如果最后一位有进位要把进位加进来 } } else { while (l2 != null) { int value = (l2.val + carry); if (value >= 10) { value = value % 10; carry = 1; } else { carry = 0; } r = r.next = new ListNode(value); l2 = l2.next; } if (carry == 0) { r.next = l2; } else { r.next = new ListNode(carry); } } } return l3; }
感觉自己好菜啊,写出的代码这么low,呜呜呜
0 0
- LeetCode 2 - Add Two Numbers
- LeetCode 2: Add Two Numbers
- Leetcode: Add Two Numbers (2)
- [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
- [Leetcode]2Add 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
- LeetCode-2-Add Two Numbers
- Leetcode[2] Add Two Numbers
- LeetCode 2 Add Two Numbers
- LeetCode 2 Add Two Numbers
- Error:(2, 0) Plugin with id 'com.github.dcendents.android-maven' not found
- 使用数组实现队列(C语言)
- Article - Physically Based Rendering
- 已安装了存在签名冲突的同名数据包
- 渗透测试:nc端口转发或反向转发
- leetcode 2:Add Two Numbers
- 多行文本垂直居中
- 弹出遮罩层后禁止滚动效果【实现代码】
- JDBC数据库基本操作
- Linux服务器定位CPU高占用率代码位置经历
- 验证码类和分页类
- mongoVUE使用
- 设计模式——适配器模式(Adapter)
- 关于unity里pbr技术和材质 unity5默认shader和传统的对比