206. 反转链表
两个指针,第一个指针叫pre,最初是指向null的。
第二个指针cur指向head,然后不断遍历cur。
每次迭代到cur,都将cur的next指向pre,然后pre和cur前进一位。
都迭代完了(cur变成null了),pre就是最后一个节点了。
class Solution {
public ListNode reverseList(ListNode head) {
//申请节点,pre和 cur,pre指向null
ListNode pre = null;
ListNode cur = head;
ListNode tmp = null;
while(cur!=null) {
//记录当前节点的下一个节点
tmp = cur.next;
//然后将当前节点指向pre
cur.next = pre;
//pre和cur节点都前进一位
pre = cur;
cur = tmp;
}
return pre;
}
}
func reverseList(head *ListNode) *ListNode {
if head == nil||head.Next==nil{
return head
}
var pre *ListNode
cur := head
for cur != nil{
next := cur.Next
cur.Next = pre
pre = cur
cur = next
}
return pre
}