逆转一个链表的链接方向
时间: 2024-06-21 18:00:40 浏览: 91
逆转一个链表是指将链表中的节点顺序反转,即原来的头节点变成了尾节点,而原来的尾节点变成了新的头节点。这是链表操作中的一个基础问题,通常可以通过迭代或递归两种方法来解决。
1. **迭代法**:
- 创建两个指针,一个(prev)指向当前节点的前一个节点,另一个(curr)指向当前节点。
- 初始化prev为null,curr为链表头节点。
- 当curr不为空时,执行以下操作:
- 将curr的下一个节点赋给curr的prev(即反转curr的next指针)。
- 移动curr到其prev节点(curr = curr.prev)。
- 最后,将原头节点设置为prev,完成链表的反转。
2. **递归法**:
- 定义一个辅助函数,该函数接收一个参数node,表示当前处理的节点。
- 如果node不为空,将其next节点设为当前节点,然后递归调用函数处理node的next节点。
- 函数返回时,node的next节点会指向null,然后将前一个节点的next指向当前node,完成递归过程。
- 基线条件是当node为null时,返回null。
阅读全文