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

网站建设合同书 简易关键词优化怎么写

网站建设合同书 简易,关键词优化怎么写,个性flash网站,黔西县住房和城乡建设局网站核心考点预览:链表 (双指针) 技巧:虚拟头结点 题目描述: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入输出示例1l1 [1,2,4], l2 [1…

核心考点预览:链表 (双指针)  技巧:虚拟头结点

题目描述:

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

示例:

输入输出
示例1l1 = [1,2,4], l2 = [1,3,4][1,1,2,3,4,4]
示例2l1 = [], l2 = [][]
示例3l1 = [], l2 = [0][0]

提示:

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

•      -100 <= Node.val <= 100

•      l1 和 l2 均按 非递减顺序 排列

详细解答:

// 定义链表节点结构
struct ListNode {int val; // 节点值struct ListNode *next; // 下一个节点指针
};// 合并两个升序链表
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {struct ListNode *p1 = list1, *p2 = list2; // 初始化指向两个链表的指针struct ListNode* res = (struct ListNode*)malloc(sizeof(struct ListNode)); // 结果链表头节点struct ListNode* p = res; // p指针用于构建结果链表// 遍历两个链表,逐个比较节点值,合并到结果链表while (p1 != NULL && p2 != NULL) {// 如果list1当前节点小于list2当前节点if (p1->val < p2->val) {p->next = p1; // 将list1的当前节点链接到结果链表p = p1; // 更新p指针,指向list1当前节点p1 = p1->next; // list1向后移动一位} // 如果list1当前节点等于list2当前节点else if (p1->val == p2->val) {p->next = p1; // 将list1的当前节点链接到结果链表p = p1; // 更新p指针,指向list1当前节点p1 = p1->next; // list1向后移动一位p->next = p2; // 将list2的当前节点链接到结果链表p = p2; // 更新p指针,指向list2当前节点p2 = p2->next; // list2向后移动一位}// 如果list2当前节点小于list1当前节点else {p->next = p2; // 将list2的当前节点链接到结果链表p = p2; // 更新p指针,指向list2当前节点p2 = p2->next; // list2向后移动一位}}// 如果list1遍历完,直接将剩余的list2链接到结果链表if (p1 == NULL) {p->next = p2;}// 如果list2遍历完,直接将剩余的list1链接到结果链表if (p2 == NULL) {p->next = p1;}// 返回合并后的链表,从res->next开始return res->next;
}

这么写中间有些繁琐,我们可以如此修改:

// 定义链表节点结构
struct ListNode {int val; // 节点值struct ListNode *next; // 下一个节点指针
};// 合并两个升序链表
struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {struct ListNode *p1 = list1, *p2 = list2; // 初始化指向两个链表的指针struct ListNode* res = (struct ListNode*)malloc(sizeof(struct ListNode)); // 结果链表头节点struct ListNode* p = res; // p指针用于构建结果链表// 遍历两个链表,逐个比较节点值,合并到结果链表while (p1 != nullptr && p2 != nullptr) {// 比较 p1 和 p2 两个指针// 将值较小的的节点接到 p 指针if (p1->val > p2->val) {p->next = p2;p2 = p2->next;} else {p->next = p1;p1 = p1->next;}// p 指针不断前进p = p->next;}// 如果list1遍历完,直接将剩余的list2链接到结果链表if (p1 == NULL) {p->next = p2;}// 如果list2遍历完,直接将剩余的list1链接到结果链表if (p2 == NULL) {p->next = p1;}// 返回合并后的链表,从res->next开始return res->next;
}

思路分析

  • 链表合并:合并两个升序链表,关键在于逐个比较两个链表的节点,将较小的节点添加到结果链表中。

  • 时间复杂度:由于两个链表都是升序的,每次合并操作都可以直接选取较小的元素,因此该方法的时间复杂度为 O(n + m),其中 nm 分别是两个链表的长度。

考点分析

  1. 链表操作:熟悉链表的遍历和合并操作。

  2. 指针操作:如何通过指针操作将两个链表合并为一个新链表。

  3. 边界情况:处理其中一个链表为空的情况,确保代码的健壮性。

http://www.dtcms.com/wzjs/61363.html

相关文章:

  • 枣庄公司做网站seo是什么技术
  • 太原网站建设制作企业员工培训内容及计划
  • 模板网站和定制网站后缀的区别关键词批量调词 软件
  • 做学术研究的网站厦门人才网手机版
  • 做竞价的网站需要做外部链接吗seo网站免费优化软件
  • dede5.7内核qq个性门户网站源码百度分析
  • 介绍做网站的标题营销网络图
  • 做此广告的网站谷歌浏览器下载安装(手机安卓版)
  • 网站开发从哪里学起孝感seo
  • 做网站的怎么挣钱、科学新概念外链平台
  • 客服网站备案长沙网站关键词排名公司
  • 做网站的语言叫什么保定网站推广公司
  • 网站怎么做动效百度搜索引擎平台
  • 往网站上做新东西需要什么老铁外链
  • 常德制作网站seo推广学院
  • asp网站导航怎么做seo优化sem推广
  • 用网站ip做代理网站搜索优化排名
  • 各大网站域名seo营销名词解释
  • 深圳企业网站建设服务百度打开
  • 做拼货商城网站app开发软件
  • 淘宝联盟怎么做自已的网站程序员培训班要多少钱
  • 西宁网站建设高端北京seo服务行者
  • 成都公司建网站网络推广学校
  • 无锡网站 制作百度推广优化方案
  • 个人小程序源码上海单个关键词优化
  • 服装网站html模板被代运营骗了去哪投诉
  • mip网站模板电商网站平台搭建
  • wordpress 有没有漏洞网络seo外包
  • 游戏软件网站开发app搜索优化
  • 建筑公司取名字参考大全郑州seo外包公司哪家好