141.环形链表
题目链接: https://leetcode-cn.com/problems/linked-list-cycle/description/
使用方法: 快慢指针法
执行出错信息:Line 19: PHP Fatal error: Nesting level too deep - recursive dependency? in solution.php
问题解决情况: 已解决
报错代码:
/**
* Definition for a singly-linked list.
* class ListNode {
* public $val = 0;
* public $next = null;
* function __construct($val) { $this->val = $val; }
* }
*/
class Solution {
/**
* @param ListNode $head
* @return Boolean
*/
function hasCycle($head) {
$fast = $head->next;
$slow = $head;
// if($fast){}
while(($fast!=null) && ($slow!=null) && ($fast->next!=null)){
if($fast == $slow){
return true;
}
$fast = $fast->next->next;
$slow = $slow->next;
}
return false;
}
}
执行出错原因: 使用“快慢指针法”解答题目时,上方错误代码中,while循环中的if条件部分代码(即比较代码),$fast ==$slow
为双等号,非严格比较,因此出现报错。
解决方法: 将while循环中的if语句()内的比较内容修改为$fast === $slow
或$fast !== $slow
,即对$fast
和$slow
进行严格比较。
详细分析: 该题目中,是使用class ListNode{}来声明的,即题目中声明的这个ListNode的基类型是一个类,因此在后续运用中,是对该类的实例化对象进行比较,因此需要使用严格比较。(此为目前的想法,如有错误欢迎指正)
参考文章:https://*.com/questions/3834791/fatal-error-nesting-level-too-deep-recursive-dependency