两数相加leetcode
第一个是测试用例代码,测试的是两个带头的逆序链表相加,并且有反转操作
但是题目要求的是不带头链表直接相加,不需要逆转,输出结果也是逆序的,
题解放在第二个代码中
#include<stdio.h>
#include<stdlib.h>
typedef struct ListNode {int val;struct ListNode* next;
}List;List* reverse(List* L) {List* p = L;List* q = NULL;while (p != NULL) {List* temp = p->next;p->next = q;q = p;p = temp;}List* head = (List*)(malloc)(sizeof(List));head->next = q;List* temp = head;while (temp->next->next != NULL) {temp = temp->next;}temp->next = NULL;return head;
}
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {List*L1=reverse(l1);L1->val = 0;List*L2=reverse(l2);L2->val = 0;List* L3 = (List*)(malloc)(sizeof(List));L3->next = NULL;L3->val = 0;int flag = 0;while (L1 != NULL || L2 != NULL) {List* temp = (List*)(malloc)(sizeof(List));temp->next = NULL;temp->val = 0;if (L1) {temp->val += L1->val;L1 = L1->next;}if (L2) {temp->val += L2->val;L2 = L2->next;}if (flag == 1) {temp->val += 1;flag = 0;}//进位if (temp->val >= 10) {temp->val= temp->val % 10;flag = 1;}//大于10进位List* cur = L3;while (cur->next != NULL) {cur = cur->next;}cur->next = temp;if (L1 == NULL && L2 == NULL && flag == 1) {List* digital = (List*)(malloc)(sizeof(List));digital->val = 1;digital->next = NULL;temp->next = digital;}}L3->next->val = 0;return reverse(L3->next);
}
List* makeList() {List* L = (List*)(malloc)(sizeof(List));L->next = NULL;int num;while (1) {scanf("%d", &num);if (num == 0) {break;}List* temp = (List*)(malloc)(sizeof(List));temp->next = NULL;temp->val = num;List* p = L;while (p->next != NULL) {p = p->next;}p->next = temp;}return L;
}
void print_List(List* L) {L = L->next; // 跳过头节点while (L != NULL) {printf("%d ", L->val);L = L->next;}printf("\n");
}int main() {List* L1 = makeList();printf("打印L1\n");print_List(L1);List* L3=reverse(L1);List* L2= makeList();printf("打印L2\n");print_List(L2);List* L4 = reverse(L2);printf("打印L3\n");print_List(L3);printf("打印L4\n");print_List(L4);List* L5 = addTwoNumbers(L3, L4);printf("打印L5\n");print_List(L5);
}
struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2) {struct ListNode* L3 = (struct ListNode*)(malloc)(sizeof(struct ListNode));L3->next = NULL;L3->val=0;int flag = 0;while (l1 != NULL || l2 != NULL) {struct ListNode* temp = (struct ListNode*)(malloc)(sizeof(struct ListNode));temp->next = NULL;temp->val = 0;if (l1) {temp->val += l1->val;l1 = l1->next;}if (l2) {temp->val += l2->val;l2 = l2->next;}if (flag == 1) {temp->val += 1;flag = 0;}//进位if (temp->val >= 10) {temp->val= temp->val % 10;flag = 1;}//大于10进位struct ListNode* cur = L3;while (cur->next != NULL) {cur = cur->next;}cur->next = temp;if (l1 == NULL && l2 == NULL && flag == 1) {struct ListNode* digital = (struct ListNode*)(malloc)(sizeof(struct ListNode));digital->val = 1;digital->next = NULL;temp->next = digital;}}return (L3->next);
}
相关文章:
两数相加leetcode
第一个是测试用例代码,测试的是两个带头的逆序链表相加,并且有反转操作 但是题目要求的是不带头链表直接相加,不需要逆转,输出结果也是逆序的, 题解放在第二个代码中 #include<stdio.h> #include<stdlib.h…...
C0004.Qt中QComboBox设置下拉列表样式后,下拉列表样式无效的解决办法
问题描述 我们平时在使用Qt Creator对控件QComboBox的样式进行设置后,在运行程序启动界面时,发现设置的样式无效,效果如下: /* 设置下拉菜单框的样式 */ QComboBox QAbstractItemView {border: 1px solid rgb(161,161,161); /* …...
AI 对话工具汇总
🐣个人主页 可惜已不在 🐤这篇在这个专栏AI_可惜已不在的博客-CSDN博客 🐥有用的话就留下一个三连吧😼 目录 前言: 正文: 前言: 在科技飞速发展的时代,AI 对话正逐渐成为我们获取信息、交流思想的新方式。它以强…...
面试题05.08绘制直线问题详解(考察点为位运算符)
目录 一题目: 二详细思路汇总: 三代码解答(带注释版): 一题目: leetcode原题链接:. - 力扣(LeetCode) 二详细思路汇总: 这里先剧透一下简单版思路哦&…...
埃及 Explained
古埃及,位于尼罗河畔的神秘文明,曾在北非的荒漠中繁荣昌盛。这个充满谜团的王国凭借其宏伟的成就和神秘的文化,数百年来吸引了无数人的好奇心。 埃及人创造了复杂的象形文字,建造了像吉萨大金字塔这样宏伟的建筑,并通…...
【Linux】第一个小程序——进度条实现
🔥 个人主页:大耳朵土土垚 🔥 所属专栏:Linux系统编程 这里将会不定期更新有关Linux的内容,欢迎大家点赞,收藏,评论🥳🥳🎉🎉🎉 文章目…...
如何确定光纤用几芯 用光纤与网线区别在哪里
光纤用几芯? 光纤芯数,主要和光纤连接的设备接口和设备的通信方式有关。一般来说,光纤中光芯的数量,为设备接口总数乘以2后,再加上10%~20%的备用数量,而如果设备的通信方式有设备多…...
使用Chrome浏览器时打开网页如何禁用缓存
缓存是浏览器用于临时存储网页资源的一种机制,可以提高网页加载速度和减轻服务器负载。 然而,有时候我们需要阻止缓存中的Chrome浏览器,以便获取最新的网页内容。以下是一些方法可以实现这个目标: 1、强制刷新页面:在C…...
zabbix7.0创建自定义模板的案例详解(以监控httpd服务为例)
前言 服务端配置 链接: rocky9.2部署zabbix服务端的详细过程 环境 主机ip应用zabbix-server192.168.10.11zabbix本体zabbix-client192.168.10.12zabbix-agent zabbix-server(服务端已配置) 创建模板 模板组直接写一个新的,不用选择 通过名称查找模板…...
从零开始Ubuntu24.04上Docker构建自动化部署(五)Docker安装jenkins
安装jenkins 下载 sudo docker pull jenkins/jenkins:lts docker-compose启动 jenkins: image: jenkins/jenkins:lts container_name: compose_jenkins user: root restart: always ports: - 28080:8080 volumes: - /home/jenkins_home/:/var/jenkins_home - /usr/local/bin/d…...
【JS】访问器成员
前言 如下例,有一商品对象,其中属性分别为单价和数量以及一个用于计算总价的方法,需要通过 product.getTotal() 获得总价,也可以使用访问器成员getter控制属性读写逻辑,通过 product.total 的方式获取总价,…...
五子棋双人对战项目(3)——匹配模块
目录 一、分析需求 二、约定前后端交互接口 匹配请求: 匹配响应: 三、实现游戏大厅页面(前端代码) game_hall.html: common.css: game_hall.css: 四、实现后端代码 WebSocketConfig …...
开源软件简介
一、开源运动的发起 近几十年,软件已经称为战略性的社会资源。各大软件供应商传统的对外封锁源代码的运营模式虽说有积极的一面,比如可以维护开发商的利益,使其可以持续地维护进一步开发的能力,以及可以保护软件商及客户的私密信息…...
Bruno:拥有 11.2k star 的免费开源 API 测试工具
Github 开源地址: https://github.com/usebruno/bruno 官网地址: https://www.usebruno.com/ 下载地址: https://www.usebruno.com/downloads 使用文档: https://docs.usebruno.com/ Bruno 是一款全新且创新的 API 客户端&…...
C动态内存管理
前言:不知不觉又过去了很长的一段时间。今天对C语言中的动态内存管理进行一个系统性的总结。 1 为什么要有动态内存分配 在C语言中,使用int,float,double,short等数据内置类型以及数组不是也可以开辟内存空间吗&…...
系列二、案例实操
一、创建表空间 1.1、概述 在Oracle数据库中,表空间是一个逻辑存储单位,它是Oracle数据库中存储数据的地方。 1.2、超级管理员登录 sqlplus / as sysdba 1.3、创建表空间 create tablespace water_boss datafile C:\Programs\oracle11g\oradata\orcl\…...
Python编码系列—Python状态模式:轻松管理对象状态的变化
🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…...
卸载WSL(Ubuntu),卸载linux
禁用 WSL 功能 打开 Windows 功能: 按下 Windows R 打开运行对话框,输入 optionalfeatures,然后按回车。 禁用 WSL: 在弹出的 Windows 功能窗口中,找到 适用于 Linux 的 Windows 子系统(Windows Subsystem…...
Lumerical脚本语言-系统(System)
系统命令包括同操作系统文件系统交互的命令、以及运行脚本文件的命令等。 1、系统命令 命令描述newproject 创建一个新的模拟设计环境 newmode 创建一个新的 MODE 设计环境 save 保存一个 fsp 文件或者 lms 文件 load装载一个 fsp 文件或者 lms 文件 del 删除一个文件 rm 删除一…...
QT 界面编程中使用协程
QT 界面编程中使用协程 一、概述二、集成2.1、编译 Acl2.2、将 Acl 库集成到 QT 项目中2.3、开始编写代码2.3.1、QT 程序初始化时初始化 Acl 协程2.3.2、在界面中创建协程2.3.3、界面程序退出前需要停止协程调度2.3.4、在界面线程中下载数据2.3.5、在协程中延迟创建窗口 2.4、效…...
企业级React UI组件库实战指南:Element React深度解析与最佳实践
企业级React UI组件库实战指南:Element React深度解析与最佳实践 【免费下载链接】element-react Element UI 项目地址: https://gitcode.com/gh_mirrors/el/element-react Element React作为一款专业的企业级React UI组件库,为现代前端开发提供了…...
Vitis新手避坑:自定义IP编译报错?先检查这个Makefile路径!
Vitis新手避坑指南:自定义IP编译报错的核心排查思路 第一次在Vitis中集成自定义IP时遇到编译报错,那种挫败感我至今记忆犹新。明明硬件描述文件(XSA)已经正确生成,软件工程却莫名其妙地报出"xxx.h: No such file …...
Umi-OCR插件技术深度解析:如何构建高效的文字识别工作流
Umi-OCR插件技术深度解析:如何构建高效的文字识别工作流 【免费下载链接】Umi-OCR_plugins Umi-OCR 插件库 项目地址: https://gitcode.com/gh_mirrors/um/Umi-OCR_plugins Umi-OCR插件库为文字识别任务提供了多样化的解决方案,涵盖了从本地CPU加…...
从零开始:使用Python Add-in快速构建ArcGIS自定义工具条
1. Python Add-in入门:ArcGIS插件开发新选择 第一次接触ArcGIS插件开发时,我被各种复杂的开发方式搞得晕头转向。直到发现了Python Add-in这个神器,才发现原来开发自定义工具条可以这么简单!Python Add-in是Esri在ArcGIS 10.1引入…...
2026 机器人行业发展前景与 AI 获客方案深度解析
引言:机器人行业的爆发式增长与获客挑战2026 年 3 月,全球机器人行业正处于爆发前夜。数据显示,2026 年全球机器人市场规模预计将达到 4000 亿元,较 2025 年增长 25%(数据来自网络)。随着具身智能技术的加速…...
LiuJuan20260223Zimage v1.0作品集:当传统工笔画遇见AI生成
LiuJuan20260223Zimage v1.0作品集:当传统工笔画遇见AI生成 1. 引言:一次跨越时空的艺术对话 想象一下,你拍了一张现代都市的夜景,或者设计了一张充满未来感的数字海报,然后,你把它交给一位深谙宋元笔法的…...
Python服务内存持续增长?5个被忽略的__del__陷阱+3种RAII式资源封装模板,今天必须修复!
第一章:Python服务内存持续增长的智能体诊断全景图Python服务在长期运行中出现内存持续增长,是生产环境中高频且隐蔽的稳定性风险。传统人工排查依赖经验与断点调试,难以覆盖异步任务、闭包引用、第三方库缓存等复杂场景。本章构建一个面向可…...
LyricsX:重构Mac音乐体验的智能歌词助手
LyricsX:重构Mac音乐体验的智能歌词助手 【免费下载链接】Lyrics Swift-based iTunes plug-in to display lyrics on the desktop. 项目地址: https://gitcode.com/gh_mirrors/lyr/Lyrics 当你在Mac上沉浸于音乐世界时,是否曾因无法同步显示歌词而…...
华为防火墙NAT映射选择指南:一对一映射 vs 端口映射
华为防火墙NAT映射技术深度解析:一对一映射与端口映射的实战选择 在当今企业网络架构中,如何安全高效地将内部服务暴露给外部访问是一个永恒的技术挑战。华为防火墙提供的NAT映射功能,特别是一对一映射和端口映射两种核心方案,为不…...
Qwen3.5-4B-Claude-Opus-GGUF效果展示:TCP三次握手状态机推理
Qwen3.5-4B-Claude-Opus-GGUF效果展示:TCP三次握手状态机推理 1. 模型能力概览 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个专注于逻辑推理和结构化分析的轻量级AI模型。这个基于Qwen3.5-4B的蒸馏版本特别擅长处理需要分步骤解释的技术问题&#…...
