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

博罗做网站技术网站已经备案更换主机

博罗做网站技术,网站已经备案更换主机,官方网站找工作公众号,广西柳州科技学校网站建设文章目录 判断链表中是否有环链表中环的入口结点 判断链表中是否有环 题目链接:判断链表中是否有环 解题思路1:快慢指针 代码如下: bool hasCycle(ListNode *head) {if(head nullptr) return false;ListNode* fast head;ListNode* slow …

文章目录

  • 判断链表中是否有环
  • 链表中环的入口结点

判断链表中是否有环

题目链接:判断链表中是否有环

解题思路1:快慢指针

代码如下:

    bool hasCycle(ListNode *head) {if(head == nullptr) return false;ListNode* fast = head;ListNode* slow = head;while(fast!=nullptr && fast->next != nullptr){fast = fast->next->next;slow = slow->next;if(fast == slow){return true;}}return false;}

解题思路2:hash法

我们把所有的节点放到哈希表中,我们遍历整个链表,如果存在重复的相同节点,那就证明链表中有环

代码如下:

    bool hasCycle(ListNode *head) {map<ListNode*, int> mp;ListNode* cur = head;while(cur != nullptr){if(mp[cur] == 1) return true;mp[cur] = 1;cur = cur->next;}return false;}

链表中环的入口结点

题目链接:链表中环的入口结点

解题思路1:hash法,记录第一次重复的节点

代码如下:

    ListNode* EntryNodeOfLoop(ListNode* pHead) {map<ListNode*, int> mp;ListNode* cur = pHead;while (cur != nullptr) {if (mp[cur] == 1) return cur;mp[cur] = 1;cur = cur->next;}return nullptr;}

解题思路2:快慢指针

上面我们用快慢指针来判断一个链表是否有环,我们也可以通过快慢指针来找到环的入口节点。我们要找到快慢指针之间步数的数学关系,借助数学关系来找到环的入口节点
假设从头结点到环的入口节点一共有a个节点,环中的节点一共有b个,设快指针走的步数为f,慢指针走的步数为s,那么有步数之间有这样的数学关系:

  • f = 2 * s ;快指针一次走两步,慢指针一次走一步
  • f = s + nb ;当快慢指针相遇时,快指针一定比慢指针多走了nb步,意思就是多绕环了n圈

所以可以得出:s = nb,f = 2nb;

当快慢指针相遇时,慢指针已经走了nb步,快指针走了2nb步,同时我们要走到环的入口节点需要走a + kb 步,而这时慢指针的nb只要再走a步即可到达入口,所以我们把快指针移动到头节点,之后,再让两个指针一次走一步往前走,当他们相遇时所处的节点就是入口节点

代码如下:

    ListNode* EntryNodeOfLoop(ListNode* pHead) {ListNode* fast = pHead;ListNode* slow = pHead;while(fast != nullptr){slow = slow->next;if(fast->next == nullptr) return nullptr;//链表中无环fast = fast->next->next;if(fast == slow){//快慢指针相遇fast = pHead;//让快指针重新指向pHeadwhile(fast != slow){//通过两个指针的相遇,控制fast走a步fast = fast->next;slow = slow->next;}return fast;//此时fast即是入口节点,直接返回}}return nullptr;}
http://www.yayakq.cn/news/626607/

相关文章:

  • 咸阳市城乡建设规划局网站吉林沈阳网站建设
  • 平阴网站建设linux wordpress 主题下载
  • 中国沙漠建设 志愿者 兵团官方网站举例说明网络营销的概念
  • 人武部正规化建设经验seo兼职在家怎么做
  • 校园微网站建设方案ppt模板海宁市住房与城乡规划建设局网站
  • 国家和城乡建设部网站wordpress给幻灯片添加图片
  • 做个免费的网站属于教育主管部门建设的专题资源网站是
  • 产品做网站不花钱WordPress立体边框
  • 青岛制作网站软件公司网站建设计入明细科目
  • 注册网站需要实名认证吗山西响应式网站建设公司
  • 建设商业网站的功能定位crm管理系统哪家好
  • 网站管理怎么做安徽制作网站专业公司
  • 网站设计说明书范文asp网站做搜索
  • 网页制作与网站建设实战大全光盘网络营销推广方案步骤
  • 南昌网站seo 优帮云黑帽seo工具
  • 永州网站建设效果网页设计软件列表html代码
  • 文案类的网站最新网站建设的模板
  • 华为网站建设wordpress 首页添加登陆
  • 沧州网络公司科技成都seo经理
  • 电子商务网站建设与维护公司形象墙
  • 勐海县城乡建设局门户网站网站说服力营销型网站策划
  • 新乡商城网站建设哪家专业单位网站建设有机房吗
  • 云南昆明网站建设快速优化珠海品牌网站制作服务
  • 假网站怎么做专业论坛网站有哪些
  • 网站内容管理系统建设北京市中关村有哪家可以做网站维护
  • 曲靖网站制作手表网站欧米茄官网
  • 怎么建网站 做app软件linux搭建wordpress
  • 网站开发人员属于网站开发女生适合吗
  • 自己买服务器建设网站推广黄冈软件必备软件
  • 重庆做商城网站设计网站开发有几种