问题
单链表反转
思路
1.定义一个pre(前一个),next(后一个)节点,初始值为null
2.记录node的下一个节点为next
3.将node的下一个节点指向pre
4.pre向后移动
5.node向后移动
6.结束返回pre节点
代码实现
public static ListNode reversal(ListNode node){
// 前一个节点
ListNode pre = null;
// 下一个节点
ListNode next = null;
// 链表为空则跳出循环
while (node != null){
// 记录当前节点的下一个节点
next = node.next;
// 当前节点的下一个节点指向pre
node.next = pre;
// pre移动到当前节点
pre = node;
// 当前节点移动到当前节点的下一个节点
node = next;
}
// 返回pre,此时pre为反转后的第一个节点也就是原链表的最后一个节点
return pre;
}