题目链接: 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://stackoverflow.com/questions/3834791/fatal-error-nesting-level-too-deep-recursive-dependency