1 题目描述
2 算法思路
- 定义一个指针cur,初始化为head
- 每次都让head 的下一个节点指向cur,实现一次局部反转
- 然后cur 往后移一个,head也往后移
- 直到cur到达链表的最后一个节点
- 结束条件:当head.next == null 时,就代表已经到了链表末尾了。
3 代码
class Solution {
public ListNode reverseList(ListNode head) {
if(head == null)
return null;
ListNode cur = head;
while(head.next != null){
ListNode temp = head.next.next;//将后面第二个节点进行保存。
head.next.next = cur; //此时完成局部反转
cur = head.next; //让cur移动一位
head.next = temp; //让head指向后面第二个
}
return cur;
}
}
4 提交结果