反转链表详解
1.题解
代码如下(示例):
class Solution {
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
ListNode nextTemp = curr.next;
curr.next = prev;
prev = curr;
curr = nextTemp;
}
return prev;
}
}
2.图示
3.详解
- 第一步:定义链表的哑结点(null)和头结点(head).
- 进行遍历:【遍历终止条件:cur = null】
1>.nextTemp:指出原来链表序列里的cue.next【要先找出 cur.next,避免转换指向后无法得到】
2>.转换指向:【调用cur.next转换】
3>.把prev,cur顺移位置:
【先移prev的位置,避免cur移动后无法找到】 - 第三步:返回prev
声明
- 原作者:ELE(禹祖祖)
- <未经允许不得转载使用,欢迎大家评论>