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

做效果图比较好的模型网站培训网络营销的机构

做效果图比较好的模型网站,培训网络营销的机构,苍溪县城乡建设投资有限公司网站,一条龙搭建网站目录 题目 解法一 双指针算法 核心思想 执行流程 具体例子 代码 解法二 两次遍历法 核心思想 执行流程 具体例子 代码 题目 19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode) 解法一 双指针算法 核心思想 利用双指针间隔固定距离(n1)&a…

目录

题目

解法一

双指针算法

核心思想

执行流程

具体例子

代码

解法二

两次遍历法

核心思想

执行流程

具体例子

代码


题目

19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode)

解法一

双指针算法

核心思想

利用双指针间隔固定距离(n+1),当快指针到达链表末尾时,慢指针恰好位于倒数第n个节点的前一位置。

执行流程

  1. 创建哑节点dummy,指向链表头部
  2. 初始化快指针fast和慢指针slow,都指向dummy
  3. fast先前进n+1步
  4. fast和slow同时前进,直到fast到达NULL
  5. slow此时指向待删除节点的前一节点,执行删除操作
  6. 返回dummy->next作为新的头节点

具体例子

对于链表1→2→3→4→5,删除倒数第2个节点(n=2):

  1. 创建dummy→1→2→3→4→5
  2. fast和slow初始都指向dummy
  3. fast前进3步(n+1):fast指向3
  4. fast和slow同时前进:
  5. 当fast到达5后的NULL
  6. slow指向3
  7. 删除slow->next(即4):3→5
  8. 返回dummy->next:1→2→3→5

代码

class Solution {
public:ListNode* removeNthFromEnd(ListNode* head, int n) {ListNode* dummy = new ListNode(0);dummy->next = head;ListNode* fast = dummy;ListNode* slow = dummy;for(int i = 0; i<n+1; i++){if(!fast){return head;}fast = fast->next;}while(fast){fast = fast->next;slow = slow->next;}if(slow->next){ListNode* toDelete = slow->next;slow->next = slow->next->next;delete toDelete;}ListNode* newhead = dummy->next;delete dummy;return newhead;}
};

解法二

两次遍历法

核心思想

执行流程

  1. 创建哑节点dummy,指向链表头部
  2. 第一次遍历计算链表长度length
  3. 计算待删除节点的正序位置:position = length - n
  4. 第二次遍历,前进position步找到待删除节点的前驱
  5. 删除目标节点
  6. 返回dummy->next作为新的头节点

具体例子

对于链表1→2→3→4→5,删除倒数第2个节点(n=2):

  1. 创建dummy→1→2→3→4→5
  2. 计算链表长度length = 5
  3. 找到正序位置:position = 5 - 2 = 3
  4. 从dummy开始前进3步到达节点3
  5. 删除节点3的下一个节点(4):3→5
  6. 返回dummy->next:1→2→3→5

双指针法效率更高,因为只需一次遍历;两次遍历法思路更直观,易于理解。

代码

ListNode* removeNthFromEnd(ListNode* head, int n) {// 创建哑节点ListNode* dummy = new ListNode(0);dummy->next = head;// 第一次遍历计算链表长度int length = 0;ListNode* first = head;while (first) {length++;first = first->next;}// 计算要删除节点的位置int position = length - n;// 找到待删除节点的前一个节点ListNode* curr = dummy;for (int i = 0; i < position; i++) {curr = curr->next;}// 删除节点并释放内存ListNode* toDelete = curr->next;curr->next = curr->next->next;delete toDelete;// 获取新的头节点head = dummy->next;delete dummy;return head;
}

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

相关文章:

  • 自己做网站的意义北京推广优化公司
  • 网站后台账户如何做会计分录网络营销在哪里学比较靠谱
  • 生物网站 template在线优化seo
  • 工业软件开发前景seo网站收录工具
  • 网站建设背景论文河北seo推广方案
  • 郑州做网站华久科技seo怎么搞
  • 网站开发项目质量控制措施哈尔滨怎样关键词优化
  • 金华大企业网站建设有哪些网络营销公司简介
  • 网站点击弹出下载框 怎么做的杭州seo培训
  • 自己做网站制作需要多少钱什么是整合营销概念
  • 简单做网站北京网站优化快速排名
  • 民宿网站建设问卷调查百度网络推广
  • 网站做服装那个平台好一点网站分析报告范文
  • 北京市中海建设有限公司网站网络营销模式下品牌推广研究
  • 做网站公司上班违法吗seo职业技能培训班
  • 重庆做网站团队网站上不去首页seo要怎么办
  • 杭州兼职网站建设微商引流一般用什么软件
  • 口腔医院网站源码淘宝摄影培训推荐
  • 做网站赚钱手机百度
  • 本地服务器怎么做网站十大免费excel网站
  • 专门做外挂的网站百度推广课程
  • 舟山市城市建设档案馆网站百度网页版首页
  • 手机网站开发的目的及定位免费测试seo
  • 网站超链接怎么做新航道培训机构怎么样
  • 广州建网站兴田德润可信seo技术优化
  • 站长联盟关键词查询工具有哪些
  • 微网站可以自己做吗谷歌独立站seo
  • 如何做授权网站软文营销的宗旨是什么
  • 珠海专业制作网站小时seo加盟
  • 日本做暖暖免费网站营销手段