链表逆置 是一个比较经典的题目了
先贴代码
public static ListNode reverse(ListNode head) {
if (head == null) {
return null;
}
ListNode pre = null;
ListNode next = null;
while (head != null) {
next = head.next;
head.next = pre;
pre = head;
head = next;
}
return pre;
}
其中最重要的是 while循环里面的代码
以head = 1->2->3->4->5 为例子
其中next 起到的是辅助的作用
pre是逆置的载体,也是最后返回的内容