题目描述
输入一个链表,反转链表后,输出链表的所有元素。
代码实现
/*
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、递归解法不是很理解,有点绕,就不研究了,哪种方法简单就用哪种吧!