如何只建一个新的节点实现链表元素逆序
时间: 2024-10-05 08:01:49 浏览: 6
在实现链表元素逆序时,通常采用迭代法而不是直接修改原有节点的指针。以下是使用一个新的链表节点构建逆序链表的过程:
1. 初始化两个指针 `prev` 和 `current`,分别指向新链表的头节点和原链表的头节点。
2. 创建一个新的空链表作为结果链表。
3. 循环遍历原链表,直到 `current` 为 null:
a. 将当前节点 `current` 的值插入到新链表的头部,作为新的头节点。
b. 更新 `current` 指向 `current.next`,即移动到下一个原链表节点。
c. 更新新链表的头节点 `prev` 指向新插入的节点,因为接下来将需要它指向下一个要逆序添加的节点。
4. 当循环结束时,`prev` 就会是新链表的尾部。
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def reverse_list_iterative(head):
prev = None
current = head
while current is not None:
# 保存当前节点的下一个节点
next_temp = current.next
# 将当前节点插入到新链表的头部
current.next = prev
# 移动指针
prev = current
current = next_temp
return prev # 返回新链表的头节点
```