2. Add Two Numbers【力扣】

题意理解

给定两个用链表表示的整数,求它们的和,同样用链表表示。

问题分析

单链表数据结构

整数的单链表的节点结构是一个整数val,一个指针next,一个构造函数ListNode(int val):val(x),next(NULL) {}.

算法思路如下:

用指针p,q分别指向两个整数链表,设置一个哑结点head,设置一个整数变量carry用于保存进位。指针curr指向新节点。

同时顺序遍历两个整数链表,直到两个链表都空为止。当有一个链表不空时,获取当前指针的结点的值,如果当前指针为空就设置为0,将两个值和进位相加,和对10取余得到的数生成新节点,进位是除10的商。然后将新节点挂接到新链表上。如果两个整数指针不为0,就后移一位。

最后范围head的下一结点。

其他

链表简单,但是用c++语言来写不熟练,这个算法看着不难,但思路这么精炼还是不容易。

链接

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值