題目描述
輸入一個鏈表,反轉鏈表后,輸出鏈表的所有元素。
代碼實現
/*
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個結點,第一個是當前結點,第二個是當前結點的前一結點,因為我們需要將當前結點指向前一結點;第三個是當前結點的下一結點,因為每次將當前結點指向前一結點前,需要先保存下一結點,否則鏈表會斷裂
2、遞歸解法不是很理解,有點繞,就不研究了,哪種方法簡單就用哪種吧!