Add Two Numbers
来源:互联网 发布:乐心手环数据清零几点 编辑:程序博客网 时间:2024/05/17 03:51
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 class Solution {public static ListNode addTwoNumbers(ListNode l1, ListNode l2) {if (l1 == null && l2 == null)return null;/* * 在java中,基本类型变量是传值的副本,对象型变量是传引用的副本,一次ret,ll操作的是同一内存, * ll用来指示链表的头结点地址 */ListNode ll =null;ListNode ret=ll;int carry = 0;int l1_val = 0;int l2_val = 0;while (l1 != null || l2 != null ) {l1_val = (null == l1) ? 0 : l1.val;l2_val = (null == l2) ? 0 : l2.val;int add = l1_val + l2_val + carry;ListNode n=new ListNode(add % 10);if(ll==null){ll=n;ret=n;}else{ret.next=n;ret=n;}carry = add/10;if (null != l1)l1 = l1.next;if (null != l2)l2 = l2.next;}if (l1 == null && l2 == null && carry!= 0){ListNode n = new ListNode(carry); ret.next = n;}return ll;}public static void main(String[] args) { ListNode l1 = new ListNode(2); ListNode x2 = new ListNode(4); ListNode x3 = new ListNode(3); l1.next = x2; x2.next = x3; ListNode l2 = new ListNode(5); ListNode y2 = new ListNode(6); ListNode y3 = new ListNode(4); l2.next = y2; y2.next = y3; ListNode ret = addTwoNumbers(l1, l2); while(ret!=null&&ret.next!=null){ System.out.print(ret.val+"->"); ret=ret.next; } if(ret!=null) System.out.print(ret.val); }
0 0
- Add two numbers & Add binary
- LeetCode: Add Two Numbers
- Add Two Numbers
- LeetCode: Add Two Numbers
- [LeetCode]Add Two Numbers
- LeetCode Add Two Numbers
- Leetcode: Add Two Numbers
- Add Two Numbers
- LeetCode : Add Two Numbers
- LeetCode Add Two Numbers
- [LeetCode] Add Two Numbers
- LeetCode4: Add Two Numbers
- Leetcode : Add Two Numbers
- Add Two Numbers
- 【leetcode】Add Two Numbers
- add two numbers
- Add Two Numbers
- Add Two Numbers
- MySQL集群快速指南-MySQL Cluster Quick Start Guide 翻译
- Socket文件传输过程详解
- Android中Activity的引导方式launcherMode的四种方式。
- 做一个屌但不屌丝的软件开发工程师
- 详解Java GC的工作原理
- Add Two Numbers
- UITableViewCell重叠
- Scala 函数式编程
- jQuery.extend 函数详解
- 《统计学习方法》笔记(十二)--Adaboost
- 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?
- leetCode 41.First Missing Positive (第一个丢失的正数) 解题思路和方法
- stdin,stderr,stdout
- imregionalmax函数