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

做体育最好的网站seo81

做体育最好的网站,seo81,网站在线考试答题系统怎么做,网站建设加工算法刷题之路之链表初探(三) 今天来学习的算法题是leecode2链表相加,是一道简单的入门题,但是原子在做的时候其实是有些抓耳挠腮,看了官解之后才恍然大悟! 条件 项目解释 有题目可以知道,我们需…

算法刷题之路之链表初探(三)

今天来学习的算法题是leecode2链表相加,是一道简单的入门题,但是原子在做的时候其实是有些抓耳挠腮,看了官解之后才恍然大悟!

条件

在这里插入图片描述

项目解释

有题目可以知道,我们需要进行的其实是一个数学(十进制计算)问题,当一个链表的数加另一个的链表的数时需要满10进1,知道这个重点其余的问题就迎刃而解啦!

代码

/*** 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 head = null, tail = null;int carry = 0;while (l1 != null || l2 != null) {int n1 = l1 != null ? l1.val : 0;int n2 = l2 != null ? l2.val : 0;int sum = n1 + n2 + carry;if (head == null) {head = tail = new ListNode(sum % 10);} else {tail.next = new ListNode(sum % 10);tail = tail.next;}carry = sum / 10;if (l1 != null) {l1 = l1.next;}if (l2 != null) {l2 = l2.next;}}if (carry > 0) {tail.next = new ListNode(carry);}return head;}
}
代码解释

当给定的两个链表分别为 l1 和 l2,其表示的非负整数分别为 235 和 572 时,代码的执行过程如下:

初始化:

head 和 tail 初始化为 null,用来构建结果链表。 carry 初始化为 0,用来记录进位。 循环开始:

进入 while 循环,条件为 l1 != null || l2 != null,只要其中一个链表还有节点,就继续循环。 每一轮循环:

计算当前节点的值: 如果 l1 不为 null,则取 l1.val,否则取 0。 如果 l2 不为 null,则取 l2.val,否则取
0。 将上一轮的进位 carry 加上 n1、n2 得到 sum。 更新进位值 carry 为 sum / 10,即 sum 的十位数。
构建新节点:

如果 head 为 null,说明结果链表还没有节点,此时创建新节点 new ListNode(sum % 10),并将 head 和
tail 都指向这个节点。 否则,在 tail.next 处创建新节点 new ListNode(sum % 10),并更新 tail
为新创建的节点。 移动指针:

如果 l1 不为 null,将 l1 指向下一个节点。 如果 l2 不为 null,将 l2 指向下一个节点。 循环结束:

循环会重复以上步骤,直到 l1 和 l2 同时为 null。 处理最后的进位:

如果循环结束后,carry 大于 0,说明还有进位需要处理,此时在 tail.next 处创建一个新节点,节点的值为 carry。
返回结果:

返回 head,即为最终构建的结果链表的头部。 具体执行过程如下:

初始时 l1 = 235,l2 = 572,carry = 0。 第一轮循环:计算 n1 = 5,n2 = 2,sum = 5 + 2 +
0 = 7,创建节点 7,更新 head 和 tail。 第二轮循环:计算 n1 = 3,n2 = 7,sum = 3 + 7 + 0 =
10,创建节点 0,更新 tail。 第三轮循环:计算 n1 = 2,n2 = 5,sum = 2 + 5 + 1 = 8,创建节点
8,更新 tail。 第四轮循环:l1 和 l2 同时为 null,循环结束。 检查最后的进位 carry = 0,无需额外节点。
因此,最终返回的结果链表为 708。

http://www.yidumall.com/news/102493.html

相关文章:

  • 企业邮箱多少钱江门seo
  • 惠州做网站的公司企业网站的搜索引擎推广与优化
  • 泸溪县建设局网站舆情分析报告模板
  • 济南网站建设模板长沙谷歌seo收费
  • linux 做网站数据库东莞网站开发公司
  • 网站建设banner东莞seo广告宣传
  • 宣化网站制作公司推广软文营销案例
  • 成都到西安的飞机票seo入门到精通
  • 建网站要花多少钱西安专业做网站公司
  • 乱起封神是那个网站开发的徐州seo招聘
  • 中文域名网站怎么发布信息如何做百度免费推广
  • 厦门seo推广厦门关键词seo排名网站
  • 网上有做口译的网站么重庆seo关键词排名
  • 个人工作室创业项目天津百度整站优化服务
  • 有没有网站专门做cnc招聘搜索引擎优化的定义
  • 手机网站模板怎么用郑州竞价托管公司哪家好
  • 郑州做网站服务器百度网盘帐号登录入口
  • 鞍山市网络销售平台搜索引擎优化课程总结
  • 如何建设数据库搜索网站长沙靠谱seo优化
  • 建筑设计单位有哪些公司dz论坛如何seo
  • 通过ip直连打开网站要怎么做网站关键词优化费用
  • 空滤网站怎么做产品网络营销方案
  • 电烤箱做蛋糕网站哈尔滨百度推广联系人
  • 做网站注意什么推广营销app
  • 杭州网站建设维护宁波seo优化公司
  • 好用网站推荐免费一键制作单页网站
  • 网站建设临沂百度搜索风云榜官网
  • 网站ui设计要点大冶seo网站优化排名推荐
  • 网站源码破解推广产品的软文
  • php 企业网站模板 想1企业网络营销策划书范文