題目描述
輸入一個鏈表,反轉鏈表後,輸出新鏈表的表頭。
public class ReverseList_15 {
public static ListNode_15 ReverseList(ListNode_15 head) {
//初始化pre指針,用於記錄當前結點的前一個結點地址
ListNode_15 pre = null;
//初始化p指針,用於記錄當前結點的下一個結點地址
ListNode_15 p = null;
//head指向null時,循環終止
while (head != null) {
//先用p指針記錄當前結點的下一個結點地址。
p = head.next;
//讓被當前結點與鏈表斷開並指向前一個結點pre
head.next = pre;
//pre指針指向當前結點
pre = head;
//head指向p(保存着原鏈表中head的下一個結點地址)
head = p;
}
return pre;//當循環結束時,pre所指的就是反轉鏈表的頭結點
}