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

物流公司 网站模板北京网站建设最好公司

物流公司 网站模板,北京网站建设最好公司,天津建设工程信息网查询,宜昌网站制作公司目录 一、合并两个有序链表 二、两数相加 一、合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1: 输入:l1 [1,2,4], l2 [1,3,4] 输出:[1,1,2,3,4,4] 示例 2&…

目录

一、合并两个有序链表

二、两数相加



一、合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例 1

 输入:l1 = [1,2,4], l2 = [1,3,4]

输出:[1,1,2,3,4,4]

示例 2

输入:l1 = [], l2 = []

输出:[]

示例 3

输入:l1 = [], l2 = [0]

输出:[0]

提示

  • 两个链表的节点数目范围是 [0, 50]

  • -100 <= Node.val <= 100

  • l1l2 均按 非递减顺序 排列

代码实现一(不设置哨兵位的头结点)

struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2)
{if (list1 == NULL)return list2;else if (list2 == NULL)return list1;
​struct ListNode* newhead = NULL;struct ListNode* tail = NULL;struct ListNode* cur1 = list1;struct ListNode* cur2 = list2;while (cur1 && cur2){if (cur1->val < cur2->val){if (newhead == NULL){newhead = tail = cur1;}else{tail->next = cur1;tail = cur1;}cur1 = cur1->next;}else{if (newhead == NULL){newhead = tail = cur2;}else{tail->next = cur2;tail = cur2;}cur2 = cur2->next;}}if (cur1){tail->next = cur1;}if (cur2){tail->next = cur2;}return newhead;
}

代码实现二(设置哨兵位的头结点)

struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2)
{struct ListNode* guard = (struct ListNode*)malloc(sizeof(struct ListNode));guard->next = NULL;struct ListNode* tail = guard;struct ListNode* cur1 = list1;struct ListNode* cur2 = list2;while (cur1 && cur2){if (cur1->val < cur2->val){tail->next = cur1;tail = cur1;cur1 = cur1->next;}else{tail->next = cur2;tail = cur2;cur2 = cur2->next;}}if (cur1){tail->next = cur1;}if (cur2){tail->next = cur2;}struct ListNode* head = guard->next;free(guard);return head; 
}


二、两数相加

给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。

请你将两个数相加,并以相同形式返回一个表示和的链表。

你可以假设除了数字 0 之外,这两个数都不会以 0 开头。

示例 1

输入:l1 = [2,4,3], l2 = [5,6,4]

输出:[7,0,8]

解释:342 + 465 = 807. 

示例 2

输入:l1 = [0], l2 = [0]

输出:[0]

示例 3

输入:l1 = [9,9,9,9,9,9,9], l2 = [9,9,9,9]

输出:[8,9,9,9,0,0,0,1]

提示

  • 每个链表中的节点数在范围 [1, 100]

  • 0 <= Node.val <= 9

  • 题目数据保证列表表示的数字不含前导零

代码实现

struct ListNode* addTwoNumbers(struct ListNode* l1, struct ListNode* l2)
{struct ListNode* guard = (struct ListNode*)malloc(sizeof(struct ListNode));guard->next = NULL;struct ListNode* tail = guard;// 两数相加int sum = 0;while (l1 || l2 || sum){if (l1 != NULL){sum += l1->val;l1 = l1->next;}if (l2 != NULL){sum += l2->val;l2 = l2->next;}// 生成一个新结点struct ListNode* newnode = (struct ListNode*)malloc(sizeof(struct ListNode));newnode->val = sum % 10;  // newnode->val 设置为 sum 的个位newnode->next = NULL;// 尾插tail->next = newnode;tail = newnode;  // 或者写成 tail = tail->next;// 更新 sumsum /= 10;  // sum 更新为原来 sum 的十位}struct ListNode* head = guard->next;free(guard);return head;
}
http://www.yayakq.cn/news/263162/

相关文章:

  • 城市建设协会网站松江手机网站开发
  • 做网站赚几百万产品推广会议流程
  • 网站关键词优化的价格南京江北新区房价
  • 网站建设教程集体苏州久远网络汕尾建设局安检站网站
  • 企业网站备案容易吗中企动力z云邮企业邮箱
  • 做网盟的网站必须备案第一次开票网站建设怎么开
  • 网站申请流程新网站秒收录技术
  • 上海市网站建设加盟广州建设工程交易中心电话
  • 南通中小企业网站制作宣传型企业网站
  • 网站制作的流程包括做卷子的网站
  • 国外设计素材网站新人如何自学做网站
  • 大连建设银行招聘网站网站建设南通
  • 北京网站外包公司怎么做带数据库的网站
  • 如何在一个空间做2个网站番禺制作网站系统
  • wordpress难不难郴州seo外包
  • 永久免费网站虚拟主机oss静态网站托管
  • 推广型网站如何建站站长工具seo综合查询隐私查询导航
  • 沈阳自主建站模板网站备案的流程
  • 柳市网站托管wordpress 视频边栏
  • 个人网站建立平台网站建设试题以及答案
  • 视频网站移动端wordpress展示图片不显示
  • 智能自助建站网站网站的验证码怎么做
  • 电商设计网站有哪些功能备案网站可以做影视站
  • 做情书直接点网站海东营销网站建设
  • 平面设计实例网站公众号 上传wordpress
  • 2019做seo网站系统开发
  • 网站建设注意那四川建设网工作时间
  • 怎么用flash做视频网站php网站建设视频
  • 做公司自主网站西安市内必去12景点
  • 河北衡水市网站制作的公司手机怎么设计平面图片