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

生鲜网站建设规划书样板百度一下首页百度一下

生鲜网站建设规划书样板,百度一下首页百度一下,陕西省网页制作,企业做推广哪些网站比较好给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开…

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
请你将两个数相加,并以相同形式返回一个表示和的链表。
你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

在这里插入图片描述
输入:l1 = [2,4,3], l2 = [5,6,4]
输出:[7,0,8]
解释:342 + 465 = 807.
示例 2:

输入:l1 = [0], l2 = [0]
输出:[0]
示例 3:

输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]
输出:[8,9,9,9,0,0,0,1]

提示:

每个链表中的节点数在范围 [1, 100] 内
0 <= Node.val <= 9
题目数据保证列表表示的数字不含前导零

开篇思路(半错误思路):

以为把两个链表数相加,然后再一个个取出来放到链表里面就行了,没想到超int,long的范围…

思路:

首先判断两个链表哪个长,然后按照长的循环,短的循环完了以后就不用继续循环了
然后两个数相加容易进位(>=10),所以next 用于存储进位数,然后sum用于统计两个链表数和next相加
然后就是取整,取余的过程,最后可能存在next进位,所以需要判断是否为0
最后再倒序存一遍就行了

初步结题:

/*** 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 len = 0, len2 = 0;ListNode nodes = null;ListNode t1 = l1,t2 = l2;//判断 哪个链表比较长while (t1 != null) {t1 = t1.next;len++;}while (t2 != null) {t2 = t2.next;len2++;}int next = 0;if (len >= len2){for (int i = 0 ; i < len ; i++){if (l2 != null){int sum = l1.val + l2.val + next;next = sum / 10;int now = sum % 10;nodes = addL(nodes,now);l2 = l2.next ;} else {int sum = l1.val + next;next = sum / 10;int now = sum % 10;nodes = addL(nodes,now);}l1 = l1.next ;}}else {for (int i = 0 ; i < len2 ; i++){if (l1 != null ){int sum = l1.val + l2.val + next;next = sum / 10;int now = sum % 10;nodes = addL(nodes,now);l1 = l1.next ;} else {int sum = l2.val + next;next = sum / 10;int now = sum % 10;nodes = addL(nodes,now);}l2 = l2.next ;}}//最后超范围 如果最后一位是9,需要进一位if (next != 0){nodes = addL(nodes,next);}//反着存一遍ListNode nodesLast = null;//判断 哪个链表比较长while (nodes != null) {nodesLast = addL(nodesLast,nodes.val);nodes = nodes.next;}return nodesLast;}private ListNode addL(ListNode next,int val){if (next == null) {next = new ListNode(val);} else {next = new ListNode(val, next);}return next;}
}

加深: 后续感觉遍历的时候可以优化循环判断,写那么多for循环重复代码太多

/*** 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) {ListNode nodes = null;int tree = 0;while (l1 != null || l2 != null){int c1 = l1 != null ? l1.val : 0;int c2 = l2 != null ? l2.val : 0;int sum = c1 + c2 + tree;tree = sum / 10;int now = sum % 10;nodes = addL(nodes,now);l1 = l1 != null ? l1.next : null;l2 = l2 != null ? l2.next : null;}//最后超范围 如果最后一位是9,需要进一位if (tree != 0){nodes = addL(nodes,tree);}//反着存一遍ListNode nodesLast = null;//判断 哪个链表比较长while (nodes != null) {nodesLast = addL(nodesLast,nodes.val);nodes = nodes.next;}return nodesLast;}private ListNode addL(ListNode next,int val){if (next == null) {next = new ListNode(val);} else {next = new ListNode(val, next);}return next;}
}
http://www.jinmujx.cn/news/112912.html

相关文章:

  • 做mg动画赚钱网站网站seo如何做好优化
  • ppt做长图网站巩义网络推广公司
  • 怎么用自己的网站做网页域名年龄对seo的影响
  • 淮北市矿业工程建设公司网站重庆森林讲的什么内容
  • 学习做网站教程seo网站优化排名
  • 网站推广的四个阶段是指网络推广哪个平台最好
  • 重庆 网站开发亚马逊市场营销案例分析
  • 陕西门户网站建设网络优化工程师需要学什么
  • 做赌博网站刷单违法吗当阳seo外包
  • 金湖县政府网站软环境效能建设江苏seo网络
  • 怎么做好一个网站营销图片素材
  • 单页网站制作淘宝指数网址
  • 网站做外链好嘛谷歌浏览器下载官网
  • 网站smtp服务器外贸接单平台网站
  • 公司新建了网站以前的就网站可以全部删除吗旺道智能seo系统
  • 用dw做教学网站aso优化服务平台
  • 天津网站建设 易尔通云盘搜索引擎入口
  • 怎么做可以访问网站谷歌seo网站优化
  • 建设银行新版网站上线重庆快速网络推广
  • 西安做网站商标沧州网站运营公司
  • 杭州专业做网站的公司有哪些软文范例800字
  • 为网站做安全认证服务河源seo
  • python做网站稳定吗如何联系百度人工客服电话
  • 中国建设银行个人网站登录网络营销策划方案格式
  • 网站开发工作简历网页设计培训
  • wordpress企业站主题网站seo优化价格
  • wordpress获取所有图片seo程序
  • 百度商桥网站网站推广在哪好
  • 网站开发需要哪些技能学seo如何入门
  • 网站建设简介百度百科怎么创建自己