目录
我在实际工作中很少会用到PHP的链表这个概念,所以花了些时间理解链表,然后又发现网络上很少有用PHP来解链表这类题的题解,所以自己写了这篇博客。
方法: 快慢指针(PHP)
/**
* Definition for a singly-linked list.
* class ListNode {
* public $val = 0;
* public $next = null;
* function __construct($val = 0, $next = null) {
* $this->val = $val;
* $this->next = $next;
* }
* }
*/
class Solution {
/**
* @param ListNode $head
* @return ListNode
*/
function middleNode($head) {
$slow = $head;
$fast = $head;
while ($fast != null && $fast->next != null) {
$slow = $slow->next;
$fast = $fast->next->next;
}
return $slow;
}
}
解释: 很多时候大家都是使用数组来存放数据,现在使用对象来存放数据时,读取内容的方式变成了 -> 这点需要注意。
测试结果:
执行用时:4 ms, 在所有 PHP 提交中击败了74.71%的用户
内存消耗:15.2 MB, 在所有 PHP 提交中击败了74.71%的用户
通过测试用例:36 / 36
官方链接:
力扣https://leetcode-cn.com/problems/middle-of-the-linked-list/