public static LinkNode reverse(LinkNode current){
LinkNode next=null;
LinkNode pre=null;
while (current != null){
next = current.next;
current.next=pre;
pre=current;
current=next;
}
return pre;
} 单链表反转需要三个指针
- current: 表示当前指针
- next: 表示下一个指针
- pre: 表示前一个指针
操作过程
首先保存next(临时变量)java next = current.next;
然后把current的next指向pre(堆中的pre内存地址)java current.next=pre;
然后把pre指针指向current, pre(栈上)始终要指向current(相对于next是前一个)java pre=current;
接着下一步继续遍历
java current=next;

京公网安备 11010502036488号