思路:
用遍历法来反转链表。
首先,这是一个待反转的链表。
其次,我们定义了一个节点cur去指向head,再创建另一个节点为空,用来保存先前结点。。
第一次遍历的结果
第二次遍历的结果
将2指向的下一位引用变成了1 本来2要指向3的,现在让他指向1,相当于一直拿出一个节点,将他添加至头部,之前的节点都指向null。
所有的代码
class Solution {
public ListNode reverseList(ListNode head) {
ListNode cur = head;
ListNode temp = null;
while(cur!=null){
ListNode pre = cur.next;
cur.next = temp;
temp = cur;
cur = pre;
}
return temp;
}
}