linklist双指针列表反转java
时间: 2024-09-20 17:05:58 浏览: 31
链表双指针法是一种常用的链表操作技巧,常用于反转链表。在Java中,你可以通过两个指向链表节点的指针,一个指向当前节点(通常称为`prev`),另一个指向下一个节点(`curr`),然后逐步交换它们的指向来进行反转。以下是简单的步骤:
1. 初始化两个指针,`prev`设为`null`,`curr`设为链表头节点。
2. 当`curr`不为空时,执行以下操作:
- 将`curr`的下一个节点(`next`)保存到临时变量中。
- 更新`curr`的下一个节点为`prev`。
- 移动`prev`和`curr`分别向前一位,即`prev = curr`, `curr = next`。
3. 当`curr`变为`null`时,说明已经到达了原链表的尾部,此时`prev`就是新的头节点。
这是Java代码的一个简单实现:
```java
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
ListNode nextTemp = curr.next; // 保存当前节点的下一个节点
curr.next = prev; // 将当前节点的next指向前一个节点
prev = curr; // 指针前移
curr = nextTemp; // 指针再次前移
}
return prev; // 返回新链表的头节点
}
```
阅读全文