2. Add Two Numbers

You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse orderand 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.

Example:

Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
Explanation: 342 + 465 = 807. 代码:
static void Main(string[] args)
{
ListNode l1 = new ListNode();
l1.next = new ListNode();
l1.next.next = new ListNode(); ListNode l2 = new ListNode();
l2.next = new ListNode();
l2.next.next = new ListNode(); var res= addTwoNumbers(l1, l2);
while (res != null)
{
Console.Write(res.val);
res = res.next;
}
Console.ReadKey();
} public class ListNode
{
public int val;
public ListNode next;
public ListNode(int x) { val = x; }
} public static ListNode addTwoNumbers(ListNode l1, ListNode l2)
{
ListNode l3 = new ListNode();
ListNode head = l3;
int sum = ;
while (l1 != null || l2 != null)
{
sum = sum > ? : ;
if (l1 != null)
{
sum += l1.val;
l1 = l1.next;
}
if (l2 != null)
{
sum += l2.val;
l2 = l2.next;
}
//存储在l3中
l3.next = new ListNode(sum % );
l3 = l3.next;
}
//判断最后一项是否和大于9,大于则需要再添加一个1.
if (sum > )
{
l3.next = new ListNode();
}
return head.next;
}

解析:

输入:ListNode类型的两个参数

输出:第一个节点。

思想:

  循环链表中的每一位,sum存储两个链表对应位上的和。通过观察不难发现规律,如果上一位和大于9,则下一位初始sum为1,将结果存储在新的链表中。

  最后一位上和大于9时,再多加一位,值为1。

时间复杂度:O(n)


 

最新文章

  1. java基础知识(六)日期处理
  2. clip-path
  3. C#添加dll引用后,添加命名空间出错的解决方案
  4. 数据库添加数据I
  5. MVC&WebForm对照学习:传值方式
  6. Linux下安装和配置java开发环境(jdk/eclipse/tomcat)
  7. jQuery ajax 请求php遍历json数组到table中
  8. 【转载】介绍“Razor”— ASP.NET的一个新视图引擎
  9. Python核心编程2第三章课后练习
  10. union all合并记录
  11. 雷林鹏分享:XML 用途
  12. 文件替换(交互式)Replace
  13. DOM精简版笔记
  14. iOS 两个页面之间的跳转
  15. Linux上printf命令的用法
  16. 使用普通用户set autotrace on报错SP2-0618: Cannot find the Session Identifier
  17. [日常] NOIp 2018 滚粗记
  18. MERGE新特性(UPDATE WHERE,DELETE WHERE,INSERT WHERE)
  19. js老生常谈之this,constructor ,prototype
  20. 【转】The most comprehensive Data Science learning plan for 2017

热门文章

  1. mysqldump导出格式
  2. java入门了解15
  3. jQuery旋转插件jquery.rotate.js 让图片旋转
  4. Delphi webservices 传数据
  5. Python基础知识之字符串操作方法总结
  6. 我对java的理解(二)——反射是小偷的万能钥匙
  7. stl_multimap.h
  8. Struts2 - 表单的重复提交问题
  9. android:layout_weight的真实含义/android:layout_gravity的条件
  10. Arc071_F Infinite Sequence