剑指offer-链表中环的入口节点-php
来源:互联网 发布:淘宝原产地政府背书 编辑:程序博客网 时间:2024/05/17 06:19
题目
一个链表中包含环,请找出该链表的环的入口结点。
题解
第一步,找环中相汇点。分别用p1,p2指向链表头部,p1每次走一步,p2每次走二步,直到p1==p2找到在环中的相汇点。
第二步,找环的入口。接上步,当p1==p2时,p2所经过节点数为2x,p1所经过节点数为x,设环中有n个节点,p2比p1多走一圈有2x=n+x; n=x;可以看出p1实际走了一个环的步数,再让p2指向链表头部,p1位置不变,p1,p2每次走一步直到p1==p2; 此时p1指向环的入口。(还没怎么懂)
代码
<?php/*class ListNode{ var $val; var $next = NULL; function __construct($x){ $this->val = $x; }}*/function EntryNodeOfLoop($pHead){ if($pHead == null || $pHead->next == null) return null; $p1 = $pHead; $p2 = $pHead; while($p2!=null && $p2->next!=null){ $p1 = $p1->next; $p2 = $p2->next->next; if($p1 == $p2){ $p2 = $pHead; while($p1!=$p2){ $p1 = $p1->next; $p2 = $p2->next; } if($p1 == $p2) return $p1; } } return null;}
0 0
- 剑指offer-链表中环的入口节点-php
- 剑指Offer:链表中环的入口节点
- 剑指offer----链表中环的入口节点
- 7.剑指offer-链表中环的入口节点
- 《剑指offer》链表中环的入口节点
- 剑指offer之链表中环的入口节点
- 剑指offer系列之五十九:链表中环的入口节点
- 剑指offer系列之54:链表中环的入口节点
- 剑指offer(58):链表中环的入口节点
- 剑指offer——链表中环的入口节点
- 《剑指Offer》面试题56:链表中环的入口节点
- 剑指offer----链表中环的入口节点----java实现
- 剑指offer----链表中环的入口节点----java实现
- 剑指offer-----链表中环的入口节点(java版)
- 剑指offer--面试题23:链表中环的入口节点
- 【剑指offer】面试题23:链表中环的入口节点
- 剑指Offer—55—链表中环的入口节点
- 剑指offer----链表中环的入口节点----java实现
- ionic ng-bind-html
- c语言实现 在一个字符串中找到由同一个字符组成的最长子串
- pat甲级A1051 Pop Sequence
- centos7和linux防火墙配置入门
- 选拔赛之 kmp
- 剑指offer-链表中环的入口节点-php
- 现代前端技术解析(4)
- [李景山php]每天laravel[035]-laravel 基础知识 --- Eloquent 模型之关系映射
- 科锐课堂笔记:2017/4/10 构造函数与析构函数
- androidSQLite使用
- Spring框架学习(5):bean之间的关系
- 数组,指针
- 04-树5 Root of AVL Tree (25 分)
- POSIX 信号量学习与思考