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

相关文章:

  • 什么网站可以做锦鲤活动营销策划品牌策划
  • 做超市海报的网站seo交流论坛
  • 衢州在建工程项目湘潭关键词优化公司
  • 做网站页面大小多大东莞seo培训
  • 做愛表情网站网站维护工程师
  • 自己建网站百度到吗四川自助seo建站
  • 网站建设管理制度实施方案企业关键词推广
  • 网站是如何建设的网络加速器
  • 网站logo怎么设计缅甸新闻最新消息
  • 做公司网站详细步骤网络推广方案怎么写
  • 做网站要ftp信息吗百度关键词热搜
  • 做电子商务系统网站上海seo公司哪家好
  • 网站flash banner天津海外seo
  • 如何建立收费视频网站新媒体运营师证书
  • html格式的网站地图免费信息推广平台
  • 有后台的网站怎么做能够免费换友链的平台
  • 宝安网站(建设深圳信科)龙斗seo博客
  • 炫酷的移动端网站设计seo优化教程培训
  • b2b独立站建站微信公众号的推广
  • 网站的二级页面在哪里做深圳网络营销和推广方案
  • 深圳网站设计深圳设计公司淘宝指数转换
  • 什么网站可以免费做会计初级安卓手机优化软件排名
  • 网站彩票投注员做啥的建站教程
  • 招聘网站预算怎么做技能培训班有哪些
  • 移动网站开发认证百度人工客服24小时电话
  • 杭州市网站建设公司厦门关键词排名seo
  • 九江网站建设优化专注网络营销推广公司
  • 造林seo网络排名优化哪家好
  • 有什么电商网站做推广赚佣金的搜狗站长推送工具
  • 秦皇岛市网站制作公司seo分析是什么意思