leetcode2两数加和问题(链表)

935d142300c04d18a0ad13d65444d822.png

题目思路:

 ①创建一个int类型的局部变量,用来存储两个结点的Val值。

②判断该Val值与10求余(mod)后是否大于0,如果大于0, 则需要在下一个结点进位。

最关键的步骤:实现l1,l2结点数值相加后构建新的存储求和后的结点.此时先创建一个head头部结点以及一个尾部结点(tail)指向头部结点,然后,让tail指向当前的tail的next用来插入下一个。这个有点不好想。

最后,循环判断两个链表是否为空,最后返回head.

 

题解算法 C++
 

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode* head =nullptr;
        ListNode* tail =nullptr;
        int carry = 0;
        while ((l1!=nullptr) || (l2!=nullptr))
        {
            int n1 = l1?l1->val:0;
            int n2 = l2?l2->val:0;
            int sum = n1+n2+carry;
            if(!head)//head为空
            {
                head = tail = new ListNode(sum%10);
            }
            else
            {
                tail->next = new ListNode(sum%10);
                tail = tail->next;
            }
            carry = sum/10;
            if(l1)//l1非空
            {
                l1 = l1->next;
            }
            if(l2)
            {
                l2 = l2->next;
            }
            if(carry>0)
            {
                tail->next = new ListNode(carry);
            }
        }
        return head;
    }
};

相关推荐

  1. leetcode100-028】【相加

    2023-12-26 07:28:06       35 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-26 07:28:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-26 07:28:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-26 07:28:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-26 07:28:06       20 阅读

热门阅读

  1. Mysql5.7服务器选项、系统变量和状态变量参考

    2023-12-26 07:28:06       39 阅读
  2. hive高级查询(2)

    2023-12-26 07:28:06       30 阅读
  3. Flink 日志总结

    2023-12-26 07:28:06       38 阅读
  4. 【WinForm.NET开发】数据绑定

    2023-12-26 07:28:06       31 阅读
  5. Kotlin 导包规则

    2023-12-26 07:28:06       37 阅读
  6. 31. Ajax

    31. Ajax

    2023-12-26 07:28:06      29 阅读
  7. 【Kotlin】Kotlin的stream流编程浅析

    2023-12-26 07:28:06       34 阅读
  8. *HTML: 超文本标记语言

    2023-12-26 07:28:06       35 阅读