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

东莞气缸东莞网站建设2022年7到8月份的十大新闻

东莞气缸东莞网站建设,2022年7到8月份的十大新闻,石家庄网页开发建设,广州公司注册官网目录 题目 合并两个有序链表的思路 读者可能的错误写法 正确的写法 题目 21. 合并两个有序链表 - 力扣(LeetCode) 合并两个有序链表的思路 处理边界情况: 如果list1为空,直接返回list2 如果list2为空,直接返回…

目录

题目

合并两个有序链表的思路

读者可能的错误写法

正确的写法


题目

21. 合并两个有序链表 - 力扣(LeetCode)

合并两个有序链表的思路

处理边界情况:

  • 如果list1为空,直接返回list2
  • 如果list2为空,直接返回list1

使用哨兵节点:

  • 创建一个哨兵节点dummy(值为0)作为合并链表的起点
  • 使用一个current指针跟踪当前合并位置

合并过程:

  • 同时遍历两个链表,比较当前节点的值
  • 将较小值的节点连接到current的next
  • 移动较小值所在的链表指针和current指针
  • 重复这个过程直到其中一个链表遍历完毕

处理剩余节点:

  • 当其中一个链表遍历完成后,将另一个链表的剩余部分直接连接到current的next
  • 这是有效的,因为剩余部分已经是有序的

返回结果:

  • 返回dummy->next作为合并后的链表头
  • 释放dummy节点以避免内存泄漏

时间和空间复杂度

  • 时间复杂度:O(m+n),其中m和n分别是两个链表的长度
  • 空间复杂度:O(1),只使用了常数额外空间

读者可能的错误写法

class Solution {
public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {ListNode* dummy = new ListNode(0);ListNode* newhead = dummy;while(list1 && list2){if(list1->val <= list2->val){newhead = list1;list1 = list1->next;}else{newhead = list2;list2 = list2->next; }newhead = newhead->next;}while(list1){newhead = list1;list1 = list1->next;newhead = newhead->next;}while(list2){newhead = list2;list2 = list2->next; newhead = newhead->next;}return newhead;}
};

上面代码有一些错误

空指针检查:

  • 没有检查list1或list2是否为nullptr,直接访问list1->val和list2->val会导致空指针错误

哨兵节点使用错误:

  • 创建了dummy节点但没有正确使用
  • newhead = dummy->next是错误的,因为dummy->next初始为nullptr
  • 没有通过dummy构建链表

节点连接逻辑错误:

  • 没有正确连接节点,只是将newhead指向不同节点
  • newhead = newhead->next会导致丢失之前的节点

返回值错误:

  • 最终返回newhead,但这可能是nullptr或指向链表末尾

正确的写法

class Solution {
public:ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) {if(!list1){return list2;}if(!list2){return list1;}ListNode* dummy = new ListNode(0);ListNode* cur = dummy;while(list1 && list2){if(list1->val <= list2->val){cur->next = list1;list1 = list1->next;}else{cur->next = list2;list2 = list2->next; }cur = cur->next;}//while(list1) //这种写法也对,但是太麻烦了//{//cur->next = list1;//list1 = list1->next;//cur = cur->next;//}//while(list2)//{//cur->next = list2;//list2 = list2->next; //cur = cur->next;//}if (list1){current->next = list1;} if (list2){current->next = list2;} ListNode* newHead = dummy->next;delete dummy;return newHead;}
};
http://www.dtcms.com/wzjs/616131.html

相关文章:

  • 北京建设工程教育中心网站衡水企业网站建设费用
  • 专业微网站企业服务公司是干什么的
  • 青岛做网站哪家公司好泰拳图片做网站用
  • 提供视频下载的网站网站空间500m是什么
  • 网站建设外包包含内容企业代码查询平台
  • html网页设计环保网站66公里智慧门店管理系统
  • 网站建设服务合同要交印花税吗个人网站有什么用
  • 做电子杂志的网站一个电商网站开发要多久
  • 在线制作动画的网站邦策网站建设
  • 深圳服务网站建设网站建设开发的主要流程
  • 临沂市建设局的网站crm软件下载
  • 怎么创办个人网站北京托管网站
  • 做一个旅游团网站怎么做wordpress登陆ip唯一
  • 做网店好还是网站好做网站使网页不居中
  • 医美类网站如何做推广北京信息化
  • 做网站的图片尺寸怎么设定wordpress 文章分类列表
  • 抖音网站开发网站开发ppt
  • 有谁想做网站 优帮云河北省和城乡建设厅网站首页
  • 网站开发中数据库的功能平台不得诱导下载
  • 天津外贸营销型网站建设西安企业名录电话资料
  • 网站制作 毕业设计网站开发设计说明书
  • 天津葛沽 网站建设公司网站建设的实验原理
  • 网站建设168腾讯邮箱注册入口官网
  • 在哪可以建一个网站wordpress头条
  • 公路水运建设质量安全监督网站财经直播网站建设
  • 哪里有做网站系统wordpress 模板下载失败
  • 做教育培训的网站站长工具视频
  • 北京网站设计公司sx成都柚米科技15app后端用什么开发
  • 云南网站开发建设没有网站可以做域名解析吗
  • wordpress 多站点网站个人备案修改成企业备案