2.Add Two Numbers
2015-07-16 21:33
399 查看
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
代码:
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
代码:
class ListNode{ int val; ListNode next; public ListNode(int digit) { val = digit; } } public static ListNode addTwoNumbers(ListNode l1, ListNode l2) { if(l1 == null || l2 == null) return null; //定义存储变量 int carry = 0; int sum = l1.val + l2.val; if(sum > 9){ sum -= 10; carry++; } ListNode head = new ListNode(sum); ListNode p = head; ListNode next1 = l1.next; ListNode next2 = l2.next; while(next1 != null || next2 != null){ if(next1 == null) sum = 0 + next2.val + carry; else if(next2 == null) sum = next1.val + 0 + carry; else sum = next1.val + next2.val + carry; carry = 0; if(sum > 9){ sum -= 10; carry++; } ListNode node = new ListNode(sum); p.next = node; p = p.next; if(next1 == null) next2 = next2.next; else if(next2 == null) next1 = next1.next; else{ next1 = next1.next; next2 = next2.next; } } if(carry == 1){ ListNode last = new ListNode(1); p.next = last; } return head; } }
相关文章推荐
- 动易2006序列号破解算法公布
- Ruby实现的矩阵连乘算法
- C#插入法排序算法实例分析
- 超大数据量存储常用数据库分表分库算法总结
- C#数据结构与算法揭秘二
- C#冒泡法排序算法实例分析
- 算法练习之从String.indexOf的模拟实现开始
- C#算法之关于大牛生小牛的问题
- C#实现的算24点游戏算法实例分析
- c语言实现的带通配符匹配算法
- 浅析STL中的常用算法
- 算法之排列算法与组合算法详解
- C++实现一维向量旋转算法
- Ruby实现的合并排序算法
- C#折半插入排序算法实现方法
- 基于C++实现的各种内部排序算法汇总
- C++线性时间的排序算法分析
- C++实现汉诺塔算法经典实例
- PHP实现克鲁斯卡尔算法实例解析
- C#常见算法面试题小结