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

网站建设功能报价网络推广优化工具有哪些

网站建设功能报价,网络推广优化工具有哪些,有哪些可以做翻译兼职的网站吗,中国十大传媒公司核心考点预览:链表 (双指针) 技巧:虚拟头结点 题目描述: 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入输出示例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/567871.html

相关文章:

  • 网站开发研深圳市勘察设计
  • 怎么在建设银行网站留言苏州沧浪区做网站的
  • 网站开发用的电脑酒店网站制作
  • 网站被黑客攻击怎么办网站设计一般用什么软件
  • 做中英文网站的企业管理培训课程网课免费
  • 网站建设三网合一指的是什么意思砍价小程序怎么赚钱
  • 网站没有百度快照学网站开发培训班
  • 做网站怎么更新静态页阿芹网站建设
  • 免费做网站的网页wordpress安装主题 ftp
  • 聊城市网站建设公司电子商务网站建设说课稿
  • 网站功能设计讲解ps做网站首页
  • 企业网络营销方法湛江市企业网站seo点击软件
  • 南通网站建设苏鹏网络wordpress 自建主题
  • 丽江网站开发找千素网北京分形科技有限公司
  • 深圳做分销商城网站网站建设流程一般可分为哪几个阶段
  • 网站建设基础学习深圳建设注册中心网站
  • 什么网站可以做图片wordpress的链接怎么设置
  • 做城市门户网站怎么发展江苏营销型网站建设公司
  • 济宁网站建设 田振wordpress 优化
  • 山西省网站制作河北建设厅网站修改密码在哪里
  • 网站建设怎么收费备案网站制作
  • 网站开发维护面试开公司要多少钱
  • 苏州微网站开发如何建设文化企业网站
  • 网站页面小图标怎么做wordpress 评论次数
  • 湘潭市建设工程质量监督站网站wordpress结构图
  • 天津高端网站设计公司wordpress 4.0后台
  • 我的班级网站模板广州公司网页制作
  • 规划营销型网站结构国内做网站用的程序
  • 深圳市龙华区教育局官网长沙seo全网营销
  • 网站开发工具与技术设计师接私单网站