反转链表-剑指Offer
反转链表
题目描述
输入一个链表,反转链表后,输出链表的所有元素。
思路
- 翻转链表,需要一个节点的next指向他的前一个节点,这样会失去下一个节点(单向链表),这时我们需要提前用一个指针保存他的下一个节点,然后再改变next指向。
代码
/*
public class ListNode {
int val;
ListNode next = null;
ListNode(int val) {
this.val = val;
}
}*/
public class Solution {
public ListNode ReverseList(ListNode head) {
ListNode reverseHead = null;
ListNode node = head;
ListNode nodePre = null;
while (node != null) {
ListNode nodeNext = node.next;
if (nodeNext == null) {
reverseHead = node;
}
node.next = nodePre;
nodePre = node;
node = nodeNext;
}
return reverseHead;
}
}