題目描述
輸入一個鏈表授艰,反轉(zhuǎn)鏈表后败砂,輸出鏈表的所有元素赌渣。
代碼實現(xiàn)
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode pre = null;
ListNode curr = head;
ListNode next = null;
while(curr != null){
next = curr.next;
curr.next = pre;
pre = curr;
curr = next;
}
return pre;
}
}
主要思路
1、首先我們需要3個結(jié)點昌犹,第一個是當前結(jié)點坚芜,第二個是當前結(jié)點的前一結(jié)點,因為我們需要將當前結(jié)點指向前一結(jié)點斜姥;第三個是當前結(jié)點的下一結(jié)點鸿竖,因為每次將當前結(jié)點指向前一結(jié)點前,需要先保存下一結(jié)點铸敏,否則鏈表會斷裂
2缚忧、遞歸解法不是很理解,有點繞杈笔,就不研究了搔谴,哪種方法簡單就用哪種吧!