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

深圳最好用的网站设计北京百度关键词推广

深圳最好用的网站设计,北京百度关键词推广,做外贸需要网站吗,网站的发展历史目录 题目 合并两个有序链表的思路 读者可能的错误写法 正确的写法 题目 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/524171.html

相关文章:

  • 潍坊网站制作人才招聘网络舆情信息
  • 禅城区做网站策划友链交易交易平台
  • 怎样做网站的快捷方式百度客户端下载安装
  • 微信商城怎么进入seo推广宣传
  • 音乐网站的设计真人seo点击平台
  • 网站报价系统网络营销软件排行
  • 茶山网站建设公司短网址生成器免费
  • 广州vps网站北京谷歌优化
  • 企业微网站建站网站优化公司大家好
  • 建站公司兴田德润好不好今日新闻头条
  • 企业网站管理系统设置网站提交工具
  • 广西两学一做考试网站2022最近比较火的热点话题
  • 做网站域名不备案会怎么样啦啦啦资源视频在线观看8
  • 建立网站的链接结构有哪几种形式?简述其各自的优缺点百度竞价推广培训
  • 有什么好的网站做旅行计划网站建设流程
  • 免费手机网站app优化视频
  • 电商网站布局设计12345浏览器网址大全
  • 政府类网站开发seo综合查询是啥意思
  • 北京市朝阳区网站制作可以免费网络推广网站
  • 国家工商营业执照查询官网昆明seo网站建设
  • 辽宁千山科技做网站怎么样重庆森林经典台词截图
  • 建设网站的主要流程图网站排名优化教程
  • 网站开发小图标百度优化软件
  • 郑州网站制作哪家便宜百度推广账户搭建
  • 软件开发与网站建设北京关键词优化平台
  • 南漳网站开发武汉做seo
  • 网站建设平台官网河间米各庄品牌运营策划
  • 做设计去哪个网站找素材提交链接
  • 做外贸一般用什么网站好系统优化软件哪个好
  • 做网站 需要 域名 空间技术培训机构