要求:
输入一个链表,反转链表后输出链表的所有元素。
思路:
让后一个节点指向前一个节点,定义一个next节点,主要用于保存要反转到头的那个节点,防止链表断裂。
代码:
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode next = null;
ListNode pre = null;
while (head != null) {
//保存要反转到头的那个节点
next = head.next;
//要反转的那个节点指向已经反转的上一个节点(第一次反转的时候会指向null)
head.next = pre;
//上一个已经反转到头的节点
pre = head;
//一直往后走
head = next;
}
return pre;
}
}