经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » Java相关 » Java » 查看文章
leetcode第二题
来源:cnblogs  作者:醉生梦死_0423  时间:2018/10/30 9:04:29  对本文有异议

leetcode第二题

题目:

给定两个非空链表来表示两个非负整数。位数按照逆序方式存储,它们的每个节点只存储单个数字。将两数相加返回一个新的链表。

你可以假设除了数字 0 之外,这两个数字都不会以零开头。

源码(使用Java语言)

  1. /**
  2. * Definition for singly-linked list.
  3. * public class ListNode {
  4. * int val;
  5. * ListNode next;
  6. * ListNode(int x) { val = x; }
  7. * }
  8. */
  9. class Solution {
  10. public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
  11. ListNode result = new ListNode(0);
  12. ListNode temp = result;
  13. ListNode temp1 = l1;
  14. ListNode temp2 = l2;
  15. int x,y,sum=0;
  16. while(temp1!=null||temp2!=null){
  17. x = temp1==null?0:temp1.val;
  18. y = temp2==null?0:temp2.val;
  19. sum = sum+x+y;
  20. temp.next = new ListNode(sum%10);
  21. sum = sum/10;//进位
  22. temp = temp.next;
  23. if(temp1!=null)
  24. temp1 = temp1.next;
  25. if(temp2!=null)
  26. temp2 = temp2.next;
  27. }
  28. if(sum>0){temp.next = new ListNode(1);}
  29. return result.next;
  30. }
  31. }

 

此算法比较简单,在这里做出两点说明:

  • 注释“进位”那一行个人觉得很神髓(或许又只是接触太少——大佬勿喷/拜托/拜托),每次循环之后如果超过十则进位,否则自动为零~
  • 最后一个if语句,因为最终如果进位,那么新增位上一定是1,所以这里直接赋予常量

PS:还在学习之中,如果有写的不得当的地方还请多多提醒/抱拳/抱拳

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号