算法系列——Add Two Numbers
来源:互联网 发布:sql数据库管理下载 编辑:程序博客网 时间:2024/06/05 17:07
题目描述
You are given two non-empty linked lists representing two non-negative integers. 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.
You may assume the two numbers do not contain any leading zero, except the number 0 itself.
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
解题思路
这道题目要求对两个链表模拟加法操作。我们可以引入一个虚拟头结点,将新生成的节点连接到头结点尾部。遍历两个链表,执行加法操作即可。注意对末尾1的处理。
程序实现
public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { if(l1==null) return null; if(l2==null) return null; ListNode p1=l1; ListNode p2=l2; ListNode dummyHead=new ListNode(-1); ListNode p=dummyHead; int d=0; int cur=0; while(p1!=null&&p2!=null){ cur=(p1.val+p2.val+d)%10; d=(p1.val+p2.val+d)/10; ListNode node=new ListNode(cur); p.next=node; p=p.next; p1=p1.next; p2=p2.next; } while(p1!=null){ cur=(p1.val+d)%10; d=(p1.val+d)/10; ListNode node=new ListNode(cur); p.next=node; p=p.next; p1=p1.next; } while(p2!=null){ cur=(p2.val+d)%10; d=(p2.val+d)/10; ListNode node=new ListNode(cur); p.next=node; p=p.next; p2=p2.next; } if(d!=0){ ListNode node=new ListNode(1); p.next=node; } return dummyHead.next; }}
阅读全文
0 0
- 算法系列——Add Two Numbers
- 算法——Add Two Numbers
- Add Two Numbers算法
- LeetCode04—Add Two Numbers
- LeetCode2—Add Two Numbers
- leetcode—Add Two Numbers
- LeetCode算法题——Add Two Numbers
- (LeetCode)算法题目——Add Two Numbers
- LeetCode算法问题1 —— Add Two Numbers
- 算法练习:Add Two Numbers
- LeetCode —— Add Two Numbers
- LeetCode——Add Two Numbers
- LeetCode2——Add Two Numbers
- LeetCode——Add Two Numbers
- leetcode 002 —— add two numbers
- leetcode002——add two numbers
- LeetCode——Add Two Numbers
- LeetCode——Add Two Numbers
- TCP协议三次握手与四次握手流程解析
- FTP协议分析
- JavaScript 添加本地图片路径img scr
- 基于am335x平台 mjpeg转码h264
- mybatis 的源码分析
- 算法系列——Add Two Numbers
- Solidworks小技巧
- jsp中计算时间(年月日 时分秒)
- LeetCode 648. Replace Words 字典树练习
- portaudio使用笔记
- recompiled header file is from a previous version of the compiler, or the precompiled header is C++
- 函数名,函数名取地址,函数名取值之间的区别
- 使用asList 不能进行add(),remove()操作,如何解决?
- 第一章:1.2.3 LTI系统研究方法与本章小结