Reverse a singly linked list.
思路:
反轉(zhuǎn)一個(gè)鏈表扫俺,反轉(zhuǎn)時(shí)需要把當(dāng)前節(jié)點(diǎn)的next指向前一個(gè)節(jié)點(diǎn)固翰,因此用兩個(gè)游標(biāo)指針pre和dummy分別指向前一個(gè)和當(dāng)前節(jié)點(diǎn)羹呵。
反轉(zhuǎn)時(shí)冈欢,需要用一個(gè)臨時(shí)節(jié)點(diǎn)存儲(chǔ)當(dāng)前節(jié)點(diǎn)的next盈简。
public ListNode reverseList(ListNode head) {
if (head == null || head.next == null) {
return head;
}
ListNode pre = null;
ListNode dummy = head;
while (dummy != null) {
ListNode next = dummy.next;
dummy.next = pre;
pre = dummy;
dummy = next;
}
return pre;
}