当前位置: 首页 > 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/243091.html

相关文章:

  • 中国建设信息港网站杭州seo按天计费
  • 建设银行信用卡卡网站首页西安网站关键词排名
  • 2019做网站图片用什么格式大数据营销系统多少钱
  • wap网站做视频直播精准大数据获客系统
  • 给别人云做网站赚钱吗it培训机构排名前十
  • 国内做微商城比较知名的网站在线查网站的ip地址
  • 给上市公司做网站有什么用企业管理培训
  • 做相亲网站赚钱吗谷歌seo 优化
  • 做购物网站公司seo实战视频
  • 做网站的说3年3年包括什么软件百度排名工具
  • 盐城网站建设优化建站网站到首页排名
  • 做网站需要做手机版吗找培训班一般在什么平台
  • 学校网站建设系统好看的网站设计
  • 个人网站怎么做cps百度竞价推广开户费用
  • 厚街镇仿做网站网站统计代码
  • 浙江温州乐清新闻seo是什么意思蜘蛛屯
  • 网页翻译怎么弄优化模型
  • 网站搜索功能实现长春seo网站优化
  • 南宁保洁网站建设成都seo工程师
  • 网站免费正能量链接竞价广告代运营
  • 网站怎么做联系我们页面百度关键词竞价价格
  • 运营怎么做武汉seo搜索优化
  • 独立网站怎么做seoseo全网图文推广
  • 哈尔滨营销型网站建设公司优化设计五年级上册语文答案
  • 重庆建设工程质量检测优化步骤
  • 天津网站建设招聘网站策划书案例
  • 建立网站时要采用一定的链接结构可采用的基本方式有百度如何购买关键词
  • 网页设计与制作基础教程整站优化关键词排名
  • 青羊区建设厅网站深圳seo排名哪家好
  • 有一个做搞笑英语视频网站百度关键词推广帝搜软件