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

中国做趋势的网站网站ueo

中国做趋势的网站,网站ueo,怎么做网站写书,新品上市怎么推广词算法刷题之路之链表初探(三) 今天来学习的算法题是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.yayakq.cn/news/773122/

相关文章:

  • 宣传展示型网站设计wordpress title标题
  • 长春网站建设电话咨询开发一个大型网站多少钱
  • 瑞金网站建设推广ui设计网课
  • 网站开发 界面如何提高网站点击率怎么做
  • 直播视频网站开发更改wordpress主题字体
  • 国内做网站网站代理网站地图用法
  • 石家庄市住房城乡建设局网站如何进行网站开发
  • 防城港网站制作网络推广和网络销售的区别
  • 网站空间用万网的 域名不在万网沈阳突发事件刚刚
  • 韩国网站源码下载优化网站佛山厂商
  • 湖北网站开发公司做企业推广去哪个网站比较好
  • 有什么网站可以做推广做网站小程序的客户是怎么找的
  • 建站价格会差网站建设接外包流程
  • 网站图表怎么做的北京市建筑工程设计有限责任公司
  • 网站自动识别移动终端网页设计教程自学网
  • 产品做网站设计师自己的网站
  • 做彩网站有哪些微信怎么建小程序
  • 信誉好的天津网站建设品牌营销案例分析
  • wordpress框架视频南宁seo外包服务商
  • 网站建设前 沟通内容怎么看一个网站是否做竞价
  • 肇庆建设工程备案的网站自己做网站推广费用大
  • 陕西网站制作定制大连网站设计选仟亿科技
  • 餐饮营销型网站案例怎么制作自己的商城
  • 自考大型网站开发工具网站开发所要达到的目标
  • 住房建设部网站监理员阿里云 发布网站 教程
  • 化工网站关键词优化精准引流推广
  • 百度视频免费高清网站如何写手机app程序
  • 网站开发整体流程图类做秋霞的网站
  • 移动网站搭建wordpress保存登陆
  • 网站开发一般黄了订阅号怎么做网站