1. 反转链表 **问题描述:**给定一个链表,反转链表后,输出新链表的表头。 **解题思路:**可以使用迭代或递归的方法。迭代方法中,你需要使用两个指针:一个用于跟踪当前节点,另一个跟踪前一个节点。遍历链表时,逐个反转指针的方向。
时间: 2025-01-14 21:09:27 浏览: 56
**答案:**
反转链表是一个常见的链表操作,其基本思想是利用三个指针,分别指向当前节点、前一个节点和下一个节点,每次循环都将这三个节点的关系调整为前一个节点指向当前节点,然后移动指针向前。具体步骤如下:
1. 定义三个指针,初始化`prev`为`None`,`curr`为链表的头节点。
2. 当`curr`不为空时,执行以下操作:
- 记录`curr`的下一个节点,即`next_node = curr.next`。
- 更新`curr`的下一个节点为`prev`,实现了反转。
- 将`prev`和`curr`向后移动一位,即`prev = curr`, `curr = next_node`。
3. 循环结束后,`prev`会成为新的链表头。
例如,在Python中,你可以这样实现:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverseList(head):
prev = None
curr = head
while curr is not None:
next_temp = curr.next
curr.next = prev
prev = curr
curr = next_temp
return prev
```
当你调用`reverseList`函数并传入链表头节点时,它将返回新的链表头。
阅读全文
相关推荐

















