当前位置: 首页 > news >正文

LeetCode2-两数相加

在这里插入图片描述

大佬解法

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode(int x) { val = x; }* }*/
class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {ListNode pre = new ListNode(0);ListNode cur = pre;int carry = 0;while(l1 != null || l2 != null) {int x = l1 == null ? 0 : l1.val;int y = l2 == null ? 0 : l2.val;int sum = x + y + carry;carry = sum / 10;sum = sum % 10;cur.next = new ListNode(sum);cur = cur.next;if(l1 != null)l1 = l1.next;if(l2 != null)l2 = l2.next;}if(carry == 1) {cur.next = new ListNode(carry);}return pre.next;}
}

自己的解法

写的跟屎一样,虽然击败100%Java用户,但是写的实在是太过于复杂

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {int sum=0;ListNode ans=new ListNode();ListNode p=ans,ptr=null;for(;;){if(l1!=null&&l2!=null){sum=l1.val+l2.val;if(p.val==1){sum+=1;}if(sum>=10){p.next=new ListNode(1);p.val=sum%10;}else{p.val=sum;if(l1.next!=null||l2.next!=null)//防止产生前导0{p.next=new ListNode();}}l1=l1.next;l2=l2.next;ptr=l1==null?l2:l1;p=p.next;}else if(ptr!=null){int null_sum=0;if(p.val==1){null_sum=ptr.val+p.val;if(null_sum>=10){p.next=new ListNode(1);p.val=null_sum%10;}else{p.val=null_sum;if(ptr.next!=null){//防止产生前导0p.next=new ListNode();}}}else{p.val=ptr.val;if(ptr.next!=null){//防止产生前导0p.next=new ListNode();}}//往后遍历ptr=ptr.next;p=p.next;}else{break;}}return ans; }}
http://www.lryc.cn/news/231572.html

相关文章:

  • css 灰质彩色的边框
  • OpenCV实现手势音量控制
  • pytorch 深度学习之余弦相似度
  • Postman的常规断言/动态参数断言/全局断言
  • ruoyi若依前端请求接口超时,增加响应时长
  • 贪吃蛇小游戏
  • cocos----1
  • 第十九章绘图
  • rpmbuild 包名 version 操作系统信息部分来源 /etc/rpm/macros.dist
  • 【Linux专题】SFTP 用户配置 ChrootDirectory
  • openssl+ DES开发实例(Linux)
  • 结构体几种实用的用法
  • React Native 源码分析(四)—— TurboModules JSI通信机制
  • 【C#学习】ToString() 格式化数值
  • install YAPI MongoDB
  • 大数据Doris(二十三):取消导入与其他导入案例参考
  • SQL-LABS
  • 【中间件篇-Redis缓存数据库07】Redis缓存使用问题及互联网运用
  • 物理引擎介绍
  • Ubuntu18.04平台下Qt开发程序打包的一些问题总结
  • 定时器setTimeout()、setInterval()详解
  • 测试端口开通的几种方法
  • Linux每日智囊
  • Word添加附件(附件图标被挡住的问题)
  • 【数据结构】单链表 | 详细讲解
  • 每日一题:编写程序,使程序分别输出两个整数的加减乘除运算结果
  • alpine linux如何指定软件包安装源
  • ubuntu设置脚本开机自启动
  • cobol-简介
  • 使用 JMeter 分布式性能测试