【LintCode-167】链表求和(Java实现)
来源:互联网 发布:windows模拟器 编辑:程序博客网 时间:2024/06/16 15:14
第一次代码记录:
public ListNode addLists(ListNode l1, ListNode l2) { ListNode result=l1; ListNode temp=l1; ListNode lastNode=null; int sum=0; while(l1!=null||l2!=null){ if(l1!=null){ sum+=l1.val; l1=l1.next; } if(l2!=null){ sum+=l2.val; l2=l2.next; } if(l2!=null&&l1==null){ temp.next=new ListNode(0); } if(sum>=10){ temp.val=sum%10; if(temp.next==null){ lastNode=temp; } temp=temp.next; sum=1; }else { temp.val=sum; temp=temp.next; sum=0; } } if(sum==1){ lastNode.next=new ListNode(1); } return result;}
第二次代码记录:
public ListNode addLists(ListNode l1, ListNode l2) { int sum=0; ListNode tmpNodeList=new ListNode(0); ListNode resultNodeList=tmpNodeList; while(l1!=null||l2!=null){ if(l1!=null){ sum+=l1.val; l1=l1.next; } if(l2!=null){ sum+=l2.val; l2=l2.next; } if(sum>=10){ tmpNodeList.val=sum%10; sum=1; }else{ tmpNodeList.val=sum; sum=0; } if(l1!=null||l2!=null){ tmpNodeList.next=new ListNode(0); tmpNodeList=tmpNodeList.next; } } if(sum==1){ tmpNodeList.next=new ListNode(1); } return resultNodeList; }
个人解题思路:
与前几章的思路相似,只需要考虑进位问题,只是将之前的数组/字符串 换成了单链表。
第一次代码:是依附在传入的参数链表中的任意一条,将其作为返回值链表头,通过修改链表上的val与新增链表节点(因为返回值链表的长度>=任何一条参数链表)来实现。
第二次代码:返回自己创建的链表,没有依附在任何一条参数链表上。
如果您有更好的解法,欢迎您在留言区补充,感谢!!
阅读全文
0 0
- 【LintCode-167】链表求和(Java实现)
- 【LintCode-408】二进制求和(Java实现)
- lintcode,167,链表求和
- lintcode 167 链表求和
- [Lintcode] #167 链表求和
- 链表求和(LintCode)
- LintCode 链表求和
- lintcode ----链表求和
- LintCode 链表求和
- 链表求和-LintCode
- lintcode--链表求和
- LintCode:链表求和
- lintcode-链表求和
- 链表求和-LintCode
- lintcode 链表求和
- 链表求和(LintCode)
- LintCode 第167题目 链表求和
- LintCode-简单-链表求和
- HDU-3371 Connect the Cities
- 动态测试方法运行时间的工具BTrace的简单应用
- shell 函数 返回值
- baidu
- 一个简单的进程间mutex和读写锁类
- 【LintCode-167】链表求和(Java实现)
- 《Python学习手册》学习笔记(22)之第22章模块代码编写基础(关键词:编程语言/Python/模块/import/from)
- js数组复制的方法
- Daily Practice_Cloud Computer
- Leetcode Minimum path sum
- 设计模式-单利模式
- sizeof
- MYSQL数据库数据引擎
- 171104-函数指针学习【连续第十二天】