Lc 2 - Add Two Numbers
来源:互联网 发布:指定数据库所有者 编辑:程序博客网 时间:2024/05/18 21:40
Description
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.
Example
Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
Output: 7 -> 0 -> 8
MySolution
public class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode sentinel=new ListNode(0); int sum=0; ListNode temp1=l1; ListNode temp2=l2; ListNode temp3=sentinel; while(temp1!=null || temp2!=null){ sum/=10; if(temp1!=null){ sum+=temp1.val; temp1=temp1.next; } if(temp2!=null){ sum+=temp2.val; temp2=temp2.next; } temp3.next=new ListNode(sum%10); temp3=temp3.next; } if(sum/10!=0) temp3.next=new ListNode(sum/10); return sentinel.next; }}
Discussion
这题并不难,但是在细节的处理上还是要花点心思的。
1. sentinel的妙用
本题如果不用sentinel会有最后多出一个Node的问题。需要用if语句控制最后一个Node的生成。但是,如果用sentinel,需要的时候才会生成新的Node,不需要就不生成了,所以最后不会出现多出一个Node的情况。
2. sum的妙用
如果不用sum,直接用temp1.val + temp2.val + carry的话,则需要讨论temp1跟temp2是否为空指针的情况,代码上不简洁。
0 0
- Lc 2 - Add Two Numbers
- 2 Add Two Numbers
- 2、Add Two Numbers
- 2、Add Two Numbers
- 2 Add Two Numbers
- 2Add Two Numbers
- #2 Add Two Numbers
- 2 - Add Two Numbers
- 2Add Two Numbers
- 2 Add Two Numbers
- 2 Add Two Numbers
- #2 Add Two Numbers
- 2 Add Two Numbers
- Add Two Numbers【2】
- 2、add two numbers
- 2、Add Two Numbers
- 2 - Add Two Numbers
- 2 Add Two Numbers
- Interrupt Service Routines(中断服务程序):ISR
- 【python】关于python的全局解释锁GIL及线程问题
- 队列数组存储Uva Concurrency Simulator
- RecyclerView万能适配器加强版———可选择添加头和尾(含点击事件)
- MyBlog = Hexo + Github
- Lc 2 - Add Two Numbers
- 解决mariadb数据库服务无法开启
- Bit.ly取代TinyURL成为Twitter默认网址缩写服务
- react native 的android环境搭建(for windows7)
- Visual Studio Code 技巧
- 老生常谈:注释怎么写?
- android实现能够左右滑动的轮播——轮播制作(三)
- MAC查看端口占用情况
- 【原创】东方耀reactnative 视频31之-开源导航组件 react-native-tab-navigator