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

美容院网站建设方案书最新消息

美容院网站建设方案书,最新消息,开发公司终止函内容,濮阳信息港网首页​ ​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录链表OJ题(三)1. 链表…

在这里插入图片描述

​📝个人主页:@Sherry的成长之路
🏠学习社区:Sherry的成长之路(个人社区)
📖专栏链接:数据结构
🎯长路漫漫浩浩,万事皆有期待

文章目录

  • 链表OJ题(三)
    • 1. 链表中倒数第k个结点
      • 思路1--两次遍历
      • 思路2-快慢指针
  • 2.总结:

上一篇链表OJ题链接:【链表OJ题(二)】链表的中间节点

链表OJ题(三)

1. 链表中倒数第k个结点

链接:链表中倒数第k个结点

描述:
输入一个链表,输出该链表中倒数第k个结点。

示例1::

输入:
1,{1,2,3,4,5}
返回值:
{5}

思路1–两次遍历

和求链表的中间节点的方法一相似,为直接法。

要求链表的倒数第 k 个节点,那么就是删除链表正数第 len(链表长度) - k + 1 个节点。

举个例子,例如链表长度为 5,删除倒数第 2 个节点,就是删除链表正数第 4 个节点,推导出来就是第 len + 1 - k 个节点。
所以只要先算出链表长度,然后遍历到 len + 1 - k 个节点返回即可。

注意
1.在计算出链表总长度len<k或k<=0时,直接返回NULL。
2.传递的是空链表,直接返回NULL

/*
struct ListNode {int val;struct ListNode *next;ListNode(int x) : val(x), next(NULL) {}
};*/
struct ListNode* FindKthToTail(struct ListNode* pListHead, int k )
{struct ListNode*cur,*ans;cur=ans=pListHead;int len=0;while (cur) {cur=cur->next;len++;}if(k<=0||k>len)return NULL;for (int i=0; i<len-k; i++) {ans=ans->next;}return ans;
}

在这里插入图片描述

既然这道题目也可以用直接法,那么能否也适用于快慢指针?事实上可以,而且这道题的方法也很巧妙,接下来看思路2

思路2-快慢指针

在上一篇博客中我们也使用了快慢指针
给定一个快指针 fast 和一个慢指针 slow;我们要求链表倒数第 k 个节点,那么我们就先让快指针走 k 步;然后让 fast 和 slow 一起走,当 fast 走到空指针,这时 slow 为倒数第 k 个节点。
在这里插入图片描述

那么这里的原理是什么呢?
首先让 fast 走 k 步,让 fast 和 slow 的间隔为 k。链表的倒数第 k 个节点,就是正数 len + 1 - k 个节点,那么当 fast 走到空指针后,链表走完,那么现在 fast 走的距离就相当于链表的长度len + 1,fast 和 slow的间隔为 k ,那么现在的 slow 就为正数 len + 1 - k个节点,这时返回 slow就是倒数第 k 个节点。

注意:如果在 fast 走 k 步的过程中,fast 迭代为了空指针,这时直接返回空指针。

代码:

struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) 
{struct ListNode* fast, *slow;fast = slow = pListHead;if (pListHead == NULL)return NULL;// fast 先走 k 步while (k--)//走k次,(--k)走k-1次{// 放置 fast 先走到空if (fast == NULL){return NULL;}fast = fast->next;}// 迭代while (fast){slow = slow->next;fast = fast->next;}return slow;
}

在这里插入图片描述

2.总结:

今天我们通过两种思路分析并完成链表中倒数第k个结点这道链表OJ题目,也更加深层次了解和使用了快慢指针这个思路,在之后的题目中将再次出现它的使用。希望我的文章和讲解能对大家的学习提供一些帮助。

当然,本文仍有许多不足之处,欢迎各位小伙伴们随时私信交流、批评指正!我们下期见~

在这里插入图片描述

http://www.yayakq.cn/news/695209/

相关文章:

  • php网站地图网站开发需要哪些流程
  • 自己建立旅游的网站建设wordpress转静态页面
  • 怎么做免费个人网站dede大气企业网站模板(一屏展示)
  • 网站如何修改后台密码公众号怎么开
  • 杭州网站推广优化哪里好做建筑材料的网站有哪些
  • 国际交易所app下载seo优化推广工程师
  • 设计接单网站大全黄山建设网站公司
  • 怎么做类似清风dj网站万户网络科技有限公司怎么样
  • 红袖添香网站建设时间网站建设代码题
  • 做网站信息网站做关键词排名有必要吗
  • 五金网站方案html5 微网站
  • 取消网站的通知书恩施做网站
  • 网上购物都有哪些网站百度竞价教程
  • 免费网站建设怎样哪些网站平台可以做推广
  • 网站建设的法律依据兼职招聘信息最新招聘
  • 虚拟币交易网站开发网站开发思维导图
  • 杭州pc网站制作公司2022年十大流行语
  • 两学一做 山西答题网站o2o网站开发教程
  • 南昌网站建站wordpress 所有文章列表
  • 网站制作维护价格营销软件网站
  • 网站建设单元格边距不受国家管理的浏览器
  • 大型公司网站建设目标wordpress j建站
  • 临沂企业网站建设网站建设服务费怎么做会计分录
  • 辽宁高端网站建设泰安焦点网络有限公司
  • unity3d转行网站开发哪些网站做推广比较有效果
  • 网站开发翻译东莞哪家纯设计公司做得好
  • 制作个人免费网站展示设计网站建设与网站维护
  • 用dz做网站怎么设置数据库搭建网站 开源软件
  • 热点网站建设wordpress 点点主题
  • 做网站需要字体授权成都旅游公司