2. Add Two Numbers

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 ListNode addTwoNumbers(ListNode l1, ListNode l2) {
 2         ListNode head = new ListNode(0), p = head;
 3         int sum = 0;
 4         while (l1 != null || l2 != null) {
 5             sum /= 10;
 6             if (l1 != null) {
 7                 sum += l1.val;
 8                 l1 = l1.next;
 9             }
10             if (l2 != null) {
11                 sum += l2.val;
12                 l2 = l2.next;
13             }
14             ListNode newNode = new ListNode(sum % 10);
15             p.next = newNode;
16             p = p.next;
17         }
18         if (sum / 10 == 1) p.next = new ListNode(1);
19         return head.next;        
20     }
复制代码

 

posted @   daniel456  阅读(138)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示