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

【力扣 中等 C】2. 两数相加

目录

题目

解法一:迭代

解法二:递归


题目

待添加

解法一:迭代

struct ListNode* add(struct ListNode* head1, struct ListNode* head2)
{struct ListNode* virHead = malloc(sizeof(*virHead));struct ListNode* curNode = virHead;int carry = 0;struct ListNode* list1CurNode = head1;struct ListNode* list2CurNode = head2;while (list1CurNode || list2CurNode || carry){int val1 = list1CurNode ? list1CurNode->val : 0;int val2 = list2CurNode ? list2CurNode->val : 0;int sum = val1 + val2 + carry;carry = sum >= 10 ? 1 : 0;struct ListNode* newNode = malloc(sizeof(*newNode));newNode->val = sum % 10;newNode->next = NULL;curNode->next = newNode;curNode = newNode;list1CurNode = list1CurNode ? list1CurNode->next : list1CurNode;list2CurNode = list2CurNode ? list2CurNode->next : list2CurNode;}struct ListNode* retHead = virHead->next;free(virHead);return retHead;
}struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2)
{return add(l1, l2);
}

解法二:递归

struct ListNode* add(struct ListNode* head1, struct ListNode* head2, int carry)
{if (!head1 && !head2 && !carry)return NULL;int val1 = head1 ? head1->val : 0;int val2 = head2 ? head2->val : 0;int sum = val1 + val2 + carry;struct ListNode* newNode = malloc(sizeof(*newNode));newNode->val = sum % 10;newNode->next = add(head1 ? head1->next : head1, head2 ? head2->next : head2, sum >= 10 ? 1 : 0);return newNode;
}struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2)
{return add(l1, l2, 0);
}

http://www.xdnf.cn/news/14497.html

相关文章:

  • 机器学习常用评估指标
  • win10/win11 快速隐藏/显示桌面图标
  • 亚矩阵云手机+Whatnot:直播电商的自动化增长引擎
  • Redis 持久化机制详解:RDB、AOF 原理与面试最佳实践(RDB篇)
  • SSL安全证书:数字时代的网络安全基石
  • 如何在 MX Linux 上安装 Blender CAD 软件
  • 学生成绩管理系统
  • 4. 时间序列预测的自回归和自动方法
  • 【MySQL】MySQL 数据库操作与设计
  • 使用 Java + WebSocket 实现简单实时双人协同 pk 答题
  • 【matlab】图片转视频
  • 网络编程TCP与UDP
  • 02 ( chrome 浏览器插件, 立马翻译), 搭建本地 api
  • 在劲牌工厂,探寻一瓶草本酒的科技之旅
  • 充电桩运维管理工具系统的**详细功能列表** - 慧知开源充电桩平台
  • 工业 AI Agent:智能化转型的核心驱动力
  • FPGA基础 -- Verilog语言要素之数组
  • 简说 python
  • Linux -- Ext系列文件系统介绍
  • Eureka、Nacos、Zookeeper 优雅上下线机制
  • 论文笔记:GTG: Generalizable Trajectory Generation Model for Urban Mobility.
  • FairyGUI学习
  • Rust 学习笔记:trait 对象
  • 【工具使用】STM32CubeMX-FreeRTOS操作系统-内存池、消息队列、邮箱篇
  • 时间序列分析
  • Django中使用流式响应,自己也能实现ChatGPT的效果
  • CGAL 快速构建三维凸包
  • 20年架构师视角:SpringAI如何重塑Java技术栈?
  • 进程和线程区别、管道和套接字、共享变量、TCP三次握手,是否可以少一次握手、子进程和主进程区别和API——Nodejs
  • 206. 反转链表