在PHP中反转链表是一个常见的编程练习,它可以帮助我们更好地理解链表的数据结构和操作。以下是一个简单的PHP实例,展示如何反转一个链表。

实例描述

我们将创建一个单链表,并实现一个函数来反转这个链表。

实例反转链表php,PHP实例:反转链表详解与代码实现  第1张

链表节点定义

我们定义一个链表节点类。

```php

class ListNode {

public $val;

public $next;

function __construct($val = 0, $next = null) {

$this->val = $val;

$this->next = $next;

}

}

```

反转链表函数

接下来,我们实现一个函数来反转链表。

```php

function reverseList($head) {

$prev = null;

$current = $head;

$next = null;

while ($current != null) {

$next = $current->next;

$current->next = $prev;

$prev = $current;

$current = $next;

}

return $prev;

}

```

使用表格展示链表反转过程

以下是一个表格,展示了反转链表的过程。

链表状态链表节点prevcurrentnext
初始状态1->2->3->nullnull12->3->null
第1次迭代1->2->3->null123->null
第2次迭代1->2->3->null1->23null
第3次迭代1->2->3->null1->2->3nullnull

完整代码

以下是完整的PHP代码示例。

```php

class ListNode {

public $val;

public $next;

function __construct($val = 0, $next = null) {

$this->val = $val;

$this->next = $next;

}

}

function reverseList($head) {

$prev = null;

$current = $head;

$next = null;

while ($current != null) {

$next = $current->next;

$current->next = $prev;

$prev = $current;

$current = $next;

}

return $prev;

}

// 创建链表

$head = new ListNode(1, new ListNode(2, new ListNode(3)));

// 反转链表

$reversedHead = reverseList($head);

// 打印反转后的链表

while ($reversedHead != null) {

echo $reversedHead->val . "