题目:将链表进行反转
解题思路:
- 定义3个节点,分别为当前节点curr,上一节点pre,下一节点temp
- 先将当前节点的下一个节点保存下来 temp = curr.next
- 将当前节点指向上一节点 curr.next = pre;
- 然后将上一节点和当前节点右移(注意先移动上一节点)
- 当 当前节点为空的时候(即上一节点到达了链表最右端),结束上述步骤
public class Solution {
public ListNode ReverseList(ListNode head) {
if(head == null || head.next == null) {
return head;
}
ListNode pre = null;
ListNode curr = head;
ListNode temp = null;
while(curr != null) {
temp = curr.next;
curr.next = pre;
pre = curr;
curr = temp;
}
return pre;
}
}