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

申请做网站安卓优化大师官方版本下载

申请做网站,安卓优化大师官方版本下载,建设部网站危险性较大,网站建设方案书个人来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/merge-two-sorted-lists 一、题目描述 将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入&…

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/merge-two-sorted-lists

一、题目描述

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

示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

二、题解

(1)递归
通过比较链表首位大小,小的链表后移,递归返回小的值

struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {if(l1==NULL)								return l2;if(l2==NULL)								return l1;if(l1->val < l2->val){l1->next = mergeTwoLists(l1->next,l2);	//递归 return l1;}else{l2->next = mergeTwoLists(l1,l2->next);	//递归 return l2;}
}

(2)类似迭代
通过比较链表首位大小,把小的链表的值拼接到返回链表后,然后后移,一方为空结束,另一条链表直接全部拼接到后面。

struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {struct ListNode* prehead = (struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* prev = prehead;			//prehead 是头结点,利用 prev 结点拼接(尾插法 ) while (l1 != NULL && l2 != NULL) {if (l1->val <= l2->val) {				//l1 <= l2,把 l1 接到 prev 后面 prev->next = l1;l1 = l1->next;						//l1 后移一个结点 }else {									//否则, 把 l2 接到 prev 后面 prev->next = l2;l2 = l2->next;						//l2 后移一个结点}prev = prev->next;						//prev 后移 }prev->next = l1 == NULL ? l2 : l1;			//其中有一个为空结束,如果 l1==NULL,就把 l2 拼接到 prev 后面,否则就把 l1 拼接到 prev 后面return prehead->next;
}

三、调试

(1)完整代码

#include<stdio.h>
#include<malloc.h>struct ListNode {int val;struct ListNode* next;
};//尾插法
void CreateListR(struct ListNode*& L, int array[], int n) {ListNode* s, * r;L = (ListNode*)malloc(sizeof(ListNode));	//创建头结点r = L;										//r 始终指向尾结点,初始时指向头结点 (头结点序号为 0) for (int i = 0; i < n; i++) {				//循环建立数据节点 ss = (ListNode*)malloc(sizeof(ListNode));s->val = array[i];						//赋值 r->next = s;							//将结点 s 插入到结点 r 之后 r = s;}r->next = NULL;								//尾结点其 next 域置为 NULL 
}//输出线性表
void Display(struct ListNode* L) {ListNode* p = L->next;						//p 指向首结点 (首结点序号为 1) while (p != NULL) {							//不为空,依次遍历 printf("%d", p->val);if (p->next != NULL) {printf("->");}p = p->next;							//p 移向下一个节点 }printf("\n");
}//迭代 
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {
}//递归
struct ListNode* mergeTwoLists(struct ListNode* l1, struct ListNode* l2) {
}int main() {int array1[] = { 1,2,4 };int array2[] = { 1,3,4 };int n1 = sizeof(array1) / sizeof(int);int n2 = sizeof(array2) / sizeof(int);struct ListNode* l1 = (struct ListNode*)malloc(sizeof(struct ListNode));struct ListNode* l2 = (struct ListNode*)malloc(sizeof(struct ListNode));CreateListR(l1, array1, n1);CreateListR(l2, array2, n2);printf("创建单链表成功!\n");printf("输出单链表\n");Display(l1);Display(l2);struct ListNode* l3 = mergeTwoLists(l1, l2);//如果只是 l3,不知道为什么第一个是 0,所以改为 l3->next Display(l3->next);return 0;
}

四、结果

(1)控制台输出
在这里插入图片描述
(2)递归
在这里插入图片描述

(3)迭代
在这里插入图片描述

http://www.lbrq.cn/news/2493793.html

相关文章:

  • 义乌公司做网站百度搜索竞价排名
  • 怎么投诉没有备案就已经运营网站线上推广外包公司
  • 电商网站流程图想在百度上推广怎么做
  • 建设银行租房网站湖北广告公司业务推广
  • 做 直销网站 公司名称营销推广的公司
  • 富士康整站seo外包
  • 做百度移动网站排名软文营销怎么做
  • 商场网站建设公司seo优化关键词排名优化
  • 做网站现成的测试账号东莞网站制作的公司
  • 网站栏目建设方案实时热搜
  • 慈溪做无痛同济&网站百度广告电话号码是多少
  • 专业优化网站建设百度竞价什么意思
  • 南昌政府网站建设seo自己怎么做
  • 网站的涂鸦效果图怎么做的百度刷自己网站的关键词
  • 怎么在qq上自己做网站做百度推广销售怎么找客户
  • 做网站是什么时候分页长春seo网站管理
  • 如何制作微信网站武汉武汉最新
  • 西昌市做网站的品牌广告策划方案
  • 网站诊断分析今日热搜榜
  • 查询网站备案进度精准客源app
  • 二手图书交易网站建设自媒体推广
  • 质量好网站建设公司服装品牌营销策划方案
  • 网站建设财务计划与预测产品宣传方案
  • 神华两学一做网站事件营销成功案例
  • 有关网站建设的书籍举例说明什么是seo
  • 做网站思路长沙市云网站建设
  • 做婚纱摄影网站多少钱百度官网客服
  • 做招聘网站怎么赚钱制作一个网站步骤
  • 网站会员系统怎么做模版企业查询
  • 网站公司怎么找客户百度经验官网首页
  • 基于 KNN 算法的手写数字识别项目实践
  • 告别配置混乱!Spring Boot 中 Properties 与 YAML 的深度解析与最佳实践
  • C#编程基础:运算符与结构详解
  • TCP如何解决网络切换问题
  • 【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 热词数量分析日期统计功能实现
  • RS485转Profinet网关配置指南:高效启动JRT激光测距传感器测量模式