C语言 | Leetcode C语言题解之第2题两数相加

题目:

题解:

cpp 复制代码
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {
    struct ListNode *head = NULL, *tail = NULL;
    int carry = 0;
    while (l1 || l2) {
        int n1 = l1 ? l1->val : 0;
        int n2 = l2 ? l2->val : 0;
        int sum = n1 + n2 + carry;
        if (!head) {
            head = tail = malloc(sizeof(struct ListNode));
            tail->val = sum % 10;
            tail->next = NULL;
        } else {
            tail->next = malloc(sizeof(struct ListNode));
            tail->next->val = sum % 10;
            tail = tail->next;
            tail->next = NULL;
        }
        carry = sum / 10;
        if (l1) {
            l1 = l1->next;
        }
        if (l2) {
            l2 = l2->next;
        }
    }
    if (carry > 0) {
        tail->next = malloc(sizeof(struct ListNode));
        tail->next->val = carry;
        tail->next->next = NULL;
    }
    return head;
}
相关推荐
释厄6234 分钟前
矢量词汇向下不向上公理即词汇归位定律——肤浅即表面
java·人工智能·算法·去中心化·1024程序员节
海绵宝宝转agent9 分钟前
Leetcode100+面经
java·笔记·学习·算法·leetcode·深度优先
Shaoshing14 分钟前
LeetCode100 283.移动零
java·数据结构·算法·leetcode
海绵宝宝转agent15 分钟前
LeetCode100个人题解+java面经总结
java·开发语言·笔记·学习·算法
文丑颜不良啊17 分钟前
LeetCode1201~1220题目解析
java·leetcode
文丑颜不良啊28 分钟前
LeetCode1161~1180题目解析
java·leetcode
飞Link8 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
学逆向的9 小时前
C 堆区内存管理
c语言·开发语言·网络安全
一去不复返的通信er11 小时前
贪心算法-合并区间(LeetCode 56)
算法·leetcode·贪心算法
阿尼卡~11 小时前
VS Code 配置 C 语言开发环境(Windows 10/11):从 GCC 安装到运行、断点调试,一篇搞定
c语言·开发语言·windows